Communication path planning method and apparatus
By converting the communication network topology into an initial directed graph and dividing it into connected components, and updating the path using an iterative process, the problem of low computational efficiency and resource waste in path planning in large-scale sparse telecommunications networks is solved. This achieves fast and effective separate path planning, improving the survivability and service recovery speed of the communication network.
Patent Information
- Application Number
- CN202310679012.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-08
- Publication Date
- 2025-10-24
- Estimated Expiration
- 2043-06-08
AI Technical Summary
In large-scale sparse telecommunications networks, existing technologies suffer from wasted computation time and resources when calculating communication path planning. In particular, when traversing the paths of primary and backup nodes, brute-force traversal methods cannot quickly yield results, and adding virtual nodes and negative edges increases computational complexity.
The communication network topology is converted into an initial directed graph. After determining the initial path using the shortest path algorithm, connected components are divided based on the path. The components are then merged and updated through an iterative process until the source node and the destination node are in the same component. Two separate paths are then determined to avoid adding virtual nodes and channels and to control the computational boundary.
It enables rapid and efficient planning of separation paths, reduces computational overhead, adapts to the dynamic planning needs of the Internet era, improves the survivability and service recovery speed of communication networks, and enhances user experience.
Smart Images

Figure CN116723109B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the technical field of communication, and more particularly, to a communication path planning method and a communication path planning device. BACKGROUND
[0002] With the development of the digital era, different requirements have different requirements for the security of communication connection. Among them, the pre-planned primary and backup protection path has the characteristics of fast recovery. For example, the services in the transmission network, by pre-planning the primary and backup paths for the services, configuring SNCP (SubNetwork Connection Protection) 1+1 protection, the primary and backup path switching within 50 milliseconds can be realized, thereby reducing the impact on the upper layer bearer service. Therefore, in the communication path planning process in the transmission network, the pre-planned primary and backup path mode is widely used in high-level user service requirements and node inter-survival channel planning. Similarly, the primary and backup path pre-planning can also be applied to other networks with fast recovery requirements.
[0003] In practice, when planning the primary and backup paths, all the nodes on the way are separated from the source and destination nodes. The primary and backup paths have high survivability. Because the node-separated path can ensure that the failure of a single board card, a single channel and a single node in the primary and backup paths will not affect the working and protection paths at the same time, when a single failure affects the working path, the service can be quickly switched to the protection path.
[0004] In related technologies, when planning the communication path, different paths corresponding to the primary and backup nodes need to be traversed, and then the backup path is calculated. This method is still a brute force traversal or a modified brute force traversal. When the telecommunication network is a large-scale sparse network, the result may not be calculated quickly due to excessive time or space consumption. And in the traversal process, the calculation may be trapped in the situation that all paths are traversed before it is found that the calculation result cannot be obtained, causing great waste of calculation time and resources.
[0005] It should be noted that the information disclosed in the above background section is only used to strengthen the understanding of the background of the present disclosure, and therefore can include information that does not constitute prior art known to those of ordinary skill in the art. SUMMARY
[0006] The purpose of the present disclosure is to provide a communication path planning method, a communication path planning device, a communication device and a computer readable storage medium, thereby improving the efficiency of communication path planning and avoiding the waste of calculation time and resources.
[0007] Other characteristics and advantages of the present disclosure will become apparent from the following detailed description, or will be learned by practice of the present disclosure.
[0008] According to one aspect of the present disclosure, a communication path planning method is provided, comprising:
[0009] Determining a shortest distance path between a source node and a destination node as a first path according to an initial directed graph, wherein the initial directed graph is obtained based on a communication network topology in which the source node and the destination node are located;
[0010] If the shortest distance path between the source node and the destination node cannot be determined based on the remaining nodes in the initial directed graph except the nodes passed through by the first path, then determining multiple connected components corresponding to the initial directed graph based on the first path, each connected component has no common passing nodes with the first path, and no common nodes between the connected components;
[0011] Performing an iterative process until the source node and the destination node are located in the same connected component; wherein each iterative process includes updating the first path and merging and updating the connected components based on the updated first path;
[0012] The updated first path corresponding to the i-th iterative process is determined as the first separation path, and a second separation path is determined based on the first separation path and the initial directed graph, where the second separation path and the first separation path do not have any common nodes, and i is the total number of iterations; wherein one of the two separation paths is used as a working path and the other is used as a protection path.
[0013] In an exemplary embodiment of the present disclosure, if the shortest distance path can be determined based on the remaining nodes in the initial directed graph except the nodes passed through by the first path, the method further includes:
[0014] The two obtained shortest distance paths are determined as the two separate paths; wherein there is no common passing node between the two shortest distance paths.
[0015] In an exemplary embodiment of the present disclosure, determining the multiple connected components corresponding to the initial directed graph based on the first path includes:
[0016] Taking the passing nodes of the first path as blocking points, the nodes with connectivity in the initial directed graph are taken as a point set; wherein the passing nodes of the first path are not included in the point set; based on the obtained multiple point sets, multiple connected components corresponding to the initial directed graph are determined.
[0017] In an exemplary embodiment of the present disclosure, each iteration process includes the following steps:
[0018] determining a current first path, and performing a pruning operation on the initial directed graph based on the current first path to obtain an updated graph; obtaining a farthest reachable node of the source node in the updated graph, and updating the current first path based on the farthest reachable node, the current first path and the updated graph to obtain an updated first path; determining a connected component corresponding to the initial directed graph based on the updated first path, and determining whether the source node and the destination node are located in the same connected component; if yes, ending the iteration, and determining the current iteration number as the total iteration number i; otherwise, returning to the step of determining the current first path to continue a next iteration process, wherein the updated first path is determined as the current first path.
[0019] In an example embodiment of the present disclosure, the determining a current first path, and performing a pruning operation on the initial directed graph based on the current first path to obtain an updated graph comprises:
[0020] determining a passing node in the current first path other than the source node and the destination node;
[0021] deleting an outgoing edge of the passing node in the initial directed graph to obtain the updated graph.
[0022] In an example embodiment of the present disclosure, the obtaining a farthest reachable node of the source node in the updated graph, and updating the current first path based on the farthest reachable node, the current first path and the updated graph to obtain an updated first path comprises:
[0023] detecting connectivity between the passing node of the current first path based on the updated graph and taking the source node as a starting point, and determining a farthest reachable node according to a detection result; obtaining a first sub-path which does not have a common passing node with the current first path based on the updated graph and taking the source node as a starting point and the farthest reachable node as a terminal point; forming a second sub-path according to a node after the farthest reachable node in the current first path; and splicing the first sub-path and the second sub-path to obtain the updated first path corresponding to the current first path.
[0024] In an example embodiment of the present disclosure, before the continuing the next iteration process, the method further comprises: determining whether a shortest distance path can be determined according to a remaining node other than the passing node of the updated first path in the initial directed graph; if yes, ending the iteration, and determining the current iteration number as the total iteration number i; otherwise, performing the next iteration process.
[0025] In an example embodiment of the present disclosure, in the case of continuing the next iteration process, the method further comprises:
[0026] obtaining the farthest reachable node of the updated graph corresponding to the previous iteration process of the next iteration process, and determining the corresponding first location information; determining the updated graph corresponding to the next iteration process; obtaining the second location information of the farthest reachable node in the updated graph corresponding to the next iteration process; determining whether the second location information is closer to the destination node than the first location information; if so, the next iteration process is allowed to continue; otherwise, the iteration ends, and a prompt information is output to indicate that the two separate paths cannot be determined.
[0027] In an example embodiment of the present disclosure, the process of obtaining the initial directed graph based on the communication network topology in which the source node and the destination node are located comprises:
[0028] converting network nodes into a vertex set; converting channels between network nodes carrying weights into an edge set; wherein the channels between network nodes are determined based on whether the channels meet the service bandwidth; constructing the initial directed graph based on the vertex set and the edge set, wherein the starting point of the service is the source node and the terminal point of the service is the destination node.
[0029] According to an aspect of the present disclosure, a communication path planning device is provided, which comprises:
[0030] a first determining module configured to determine a shortest distance path between a source node and a destination node as a first path according to an initial directed graph, the initial directed graph being obtained based on a communication network topology in which the source node and the destination node are located; a second determining module configured to, if a shortest distance path between the source node and the destination node cannot be determined according to remaining nodes in the initial directed graph except for nodes on the first path, determine a plurality of connected components corresponding to the initial directed graph based on the first path, each connected component not having a common node with the first path, and each connected component not having a common node with another connected component; an executing module configured to execute an iteration process until the source node and the destination node are located in the same connected component; wherein each iteration process comprises updating the first path, and implementing merging and updating of the connected components based on the updated first path; and a third determining module configured to determine an updated first path corresponding to an i-th iteration process as a first separate path, and determine a second separate path based on the first separate path and the initial directed graph, the second separate path not having a common node with the first separate path, i being a total number of iterations; wherein one of the two separate paths is a working path and the other is a protection path.
[0031] According to an aspect of the present disclosure, a communication device is provided, comprising a processor and a memory; the memory stores instructions executable by the processor; the processor is configured to execute the instructions to enable the communication device to implement the communication path planning method according to any one of the preceding aspects.
[0032] According to an aspect of the present disclosure, a computer readable storage medium is provided, which stores a computer program executable by a processor to implement the communication path planning method according to any one of the preceding aspects.
[0033] In the communication path planning method in the exemplary embodiments of the present disclosure, on one hand, after the communication network topology in which the source node and the destination node are located is converted into an initial directed graph, when it is unable to determine the shortest distance path between the source node and the destination node based on the remaining nodes in the initial directed graph except the nodes on the determined shortest distance path (first path), the network is divided into multiple connected components based on the first path, and then when the separated paths are established in a subsequent iterative manner, the calculation boundary is clear, compared with the brute-force traversal manner in the prior art, the first path is updated through the iterative process, and the merging and updating of the connected components are implemented based on the updated first path, until the source node and the destination node are located in the same connected component, the updated first path corresponding to the last iteration is determined as the first separated path, and the second separated path is determined based on the first separated path and the initial directed graph, the number of iterations in the whole process will not exceed the number of connected components, that is, the method according to the embodiments of the present disclosure can effectively and quickly plan the second path for the network after the first path is determined, reduces the overhead of establishing the separated paths, and adapts to the dynamic planning requirements of the communication network in the Internet era; on the other hand, in the process of establishing the separated paths, the number of virtual nodes or connection channels is not increased, that is, the complexity of the scheme calculation is not increased.
[0034] In addition, the method according to the embodiments of the present disclosure can quickly and effectively establish the separated paths, for the application scenarios in which the primary and backup node separation needs to be planned, when the passing network element or relay channel of one path fails, the integrity of the other path is not affected, the quick switching and recovery of the service is realized, the survivability of the communication network service is improved, and then the quality of the telecommunication service is improved, and the user perception is enhanced.
[0035] It should be understood that the foregoing general description and the following detailed description are only exemplary and explanatory, and cannot limit the present disclosure. BRIEF DESCRIPTION OF DRAWINGS
[0036] The above and other objects, features and advantages of the present disclosure exemplary embodiments will be more apparent from the following detailed description read in conjunction with the accompanying drawings, in which:
[0037] Figure 1 A diagram of an application scenario to which embodiments of the present disclosure relate is shown;
[0038] Figure 2 A flow chart of a communication path planning method according to an exemplary embodiment of the present disclosure is shown;
[0039] Figure 3 A schematic diagram of an initial directed graph according to an exemplary embodiment of the present disclosure is shown;
[0040] Figure 4 A flow chart of an implementation of determining a connected component according to an exemplary embodiment of the present disclosure is shown;
[0041] Figure 5 A flow chart of an iteration process according to an exemplary embodiment of the present disclosure is shown;
[0042] Figure 6 A flow chart of an implementation of determining two separate paths with no node separation according to an exemplary embodiment of the present disclosure is shown;
[0043] Figure 7 A complete flow chart of a communication path planning according to an exemplary embodiment of the present disclosure is shown;
[0044] Figure 8 A communication network topology diagram in which separate paths cannot be established according to an exemplary embodiment of the present disclosure is shown;
[0045] Figure 9 A structural composition diagram of a communication path planning apparatus according to an exemplary embodiment of the present disclosure is shown;
[0046] Figure 10 A schematic diagram of a communication apparatus according to an exemplary embodiment of the present disclosure is shown.
[0047] In the drawings, identical or corresponding reference signs indicate identical or corresponding parts. DETAILED DESCRIPTION
[0048] The exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, the exemplary embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, these examples are provided so that this disclosure will be thorough and complete and will fully convey the concepts of the exemplary embodiments to those skilled in the art. Identical reference numerals in the figures represent identical or similar structures, and thus detailed descriptions thereof will be omitted.
[0049] In addition, the described features, structures or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present disclosure. However, those skilled in the art will appreciate that the technical solutions of the present disclosure can be practiced without one or more of the specific details, or other methods, components, devices, steps, etc. can be adopted. In other cases, well-known structures, methods, devices, implementations or operations are not shown or described in detail to avoid obscuring various aspects of the present disclosure.
[0050] The blocks shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically separate entities. Specifically, these functional entities may be implemented in software, or in one or more software-hardened modules, or in different networks and / or processor devices and / or microcontroller devices.
[0051] Telecommunication networks are usually composed of a large number of network devices, and the network scale is very large. With the increasing demand for service reliability, or when equipment or optical fiber fails, services need to be quickly protected and restored. For example, when the scale of communication network nodes reaches thousands or even tens of thousands, rapid service switching and recovery are required. To this end, two paths, working and protection, are usually deployed in the network to carry the same service. Figure 1 An application scenario diagram related to an embodiment of the present disclosure is shown, including a working path and a protection path that follow the path separation principle. The working path and the protection path can be distributed on different links, and the nodes passed through on the links do not overlap.
[0052] based on Figure 1 The two separate paths shown in the figure allow the services carried to be quickly switched to the protection path when the working path fails. That is, to ensure the selection of this recovery path, the working path and the protection path follow the path separation principle, that is, the working path and the protection path are distributed to different nodes and different links as much as possible.
[0053] Currently, when calculating the separation paths of the master and standby nodes in the prior art, different paths in the master and standby nodes are often traversed, and then the standby paths are calculated based on this. This method is actually based on brute force traversal or a modification of brute force traversal. When the telecommunication network is a large-scale sparse network, the time or space consumption may be too large to quickly calculate the results. Moreover, if the traversal algorithm is not combined with connectivity judgment, the calculation will be trapped in a situation where all paths are traversed before it is found that the calculation results cannot be obtained, thereby causing waste of calculation time and resources. Another prior art for calculating the separation paths of the master and standby nodes is to increase virtual nodes and introduce negative cost edges into the calculation process. However, this process increases virtual nodes and introduces negative values, so that the standard Dijkstra algorithm cannot be directly applied to the calculation, and the negative edges increase the time complexity of the basic algorithm by one order of magnitude, and the increase of the virtual nodes in the graph further increases the time complexity.
[0054] Based on one or more of the above problems, it is necessary to provide a communication path planning method for quickly and efficiently establishing separation paths. That is, the communication path planning method provided by the embodiments of the present disclosure is executed by a related executor in the network or a processor configured in the executor. First, the communication network topology in which the source node and the destination node are located is converted into an initial directed graph. If the shortest distance path between the source node and the destination node cannot be determined according to the remaining nodes in the initial directed graph except the nodes on the first path, the iteration of the connected components separated by the shortest distance path (the first path) is proposed, so that the source node and the destination node are quickly located in the same connected component by merging and updating the connected components in the iteration process, and then two separation paths are determined, so that the iteration process has a clear calculation boundary, and the calculation amount and calculation time are reduced.
[0055] In the next iteration process, if it is found that the next iteration process cannot reach a connected component farther than the previous iteration process, it is confirmed that the master and standby paths of the node separation cannot be calculated, and the calculation is stopped in time to avoid wasting calculation resources and time.
[0056] As Figure 2 A flowchart of the communication path planning method according to the embodiments of the present disclosure is shown, and the communication path planning method of the embodiments of the present disclosure is a method for planning the separation paths of the node separation in the communication process. Referring to Figure 2 The communication path planning method of the embodiments of the present disclosure can include steps S210 to S240:
[0057] In step S210: the shortest distance path between the source node and the destination node is determined as the first path according to the initial directed graph, and the initial directed graph is obtained based on the communication network topology in which the source node and the destination node are located.
[0058] In the exemplary embodiments of the present disclosure, the source node in the communication network topology refers to a network node acting as a source to send original data packets, such as a network element sending information. Correspondingly, the network node receiving information is the destination node (also referred to as the sink node). For bidirectional communication, the source node also acts as the destination node, and the destination node also acts as the source node.
[0059] According to the service requirement, the exemplary embodiments of the present disclosure perform directed simple graph conversion according to the communication network topology where the source node and the destination node are located, to obtain an initial directed graph. Exemplarily, the communication network topology can be converted into a point-line graph G(V, E) model, and of course, the exemplary embodiments of the present disclosure can convert the communication network topology into other types of graph models according to actual requirements, and no special limitation is made to this.
[0060] When determining the shortest distance path between the source node and the destination node based on the initial directed graph, a shortest path method can be used for calculation, for example, the Dijkstra algorithm, and of course, the exemplary embodiments of the present disclosure can also select other shortest path algorithms according to actual requirements, such as the Bellman-Ford algorithm, and no special limitation is made to this.
[0061] If the shortest distance path between the source node and the destination node can be calculated based on the initial directed graph, the process proceeds to step S220, otherwise, it is indicated that there is no reachable path between the source node and the destination node, and the process of establishing the separation path is ended, that is, the process of communication path planning is ended.
[0062] In step S220, if the shortest distance path between the source node and the destination node cannot be determined according to the remaining nodes in the initial directed graph except the nodes on the first path, the multiple connected components corresponding to the initial directed graph are determined based on the first path, each connected component does not have a common node with the first path, and there is no common node between the connected components.
[0063] In the exemplary embodiments of the present disclosure, the passing node refers to a network node passing through any path except the source node and the destination node. For example, the first path is (s, v1, v2, …, v n , d), and the passing nodes of the first path are (v1, v2, …, v n ).
[0064] After obtaining the initial directed graph and determining the first path, the passing nodes of the first path can be avoided in the initial directed graph, and whether there is a shortest distance path is calculated again. The shortest path algorithm such as the Dijkstra algorithm can also be selected according to actual requirements.
[0065] If the shortest distance path is calculated, the shortest distance path and the first path form two separate paths, and there is no common node between the two shortest distance paths. One of the two separate paths is the working path and the other is the protection path. For example, the path with shorter length of the two separate paths is the working path (i.e., the primary path), and the other path is the protection path (i.e., the backup path).
[0066] On the contrary, if the shortest distance path is not calculated, it indicates that the nodes on the first path divide the initial directed graph into two or more connected components, and the source node and the destination node are in different connected components.
[0067] Figure 3 A schematic diagram of an initial directed graph according to an example embodiment of the present disclosure is shown. As shown, if the first path is (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d), the nodes on the first path are (a2, a3, c1, c2, c4, c6, c5, b1, b3), and the initial directed graph is divided into three connected components: (s, a1, a4), (c3), and (b2, b4, d). Each connected component does not have a common node with the first path, and there is no common node between each connected component. Figure 3
[0068] The subsequent steps then iteratively merge and update the connected components so that the source node and the destination node are in the same connected component, and then calculate two separate paths.
[0069] In step 230, the iteration process is performed until the source node and the destination node are in the same connected component. Each iteration process includes updating the first path and merging and updating the connected components based on the updated first path.
[0070] In an example embodiment of the present disclosure, after determining the multiple connected components of the initial directed graph, the multiple connected components are iteratively merged by at least two connected components each time, and the number of iterations does not exceed the number of connected components. When the source node and the destination node are in the same connected component, the shortest distance path can be calculated based on the updated first path and the initial directed graph. The specific iteration process will be described in the subsequent steps.
[0071] In step S240, the updated first path corresponding to the i th iteration process is determined as the first separation path, and the second separation path is determined based on the first separation path and the initial directed graph, the second separation path does not have a common passing node with the first separation path, and i is the total number of iterations; wherein one of the two separation paths is used as a working path and the other is used as a protection path.
[0072] In the example embodiment of the present disclosure, after the end condition is reached, that is, the source node and the destination node are located in the same connected component, the total number of iterations i is obtained, indicating that the updated first path after the i th iteration process does not divide the source node and the destination node into different connected components. Therefore, the updated first path corresponding to the i th iteration process is determined as the first separation path, and the second separation path is calculated based on the first separation path and the initial directed graph by the shortest path method, and the two separation paths are obtained.
[0073] Wherein one of the two separation paths is used as a working path and the other is used as a protection path. For example, the path with shorter length of the two separation paths is used as the working path (i.e. the primary path), and the other path is used as the protection path (i.e. the backup path).
[0074] The communication path planning method in the example embodiment of the present disclosure converts the communication network topology in which the source node and the destination node are located into an initial directed graph, and then divides the network into multiple connected components based on the first path when the shortest distance path between the source node and the destination node cannot be determined based on the remaining nodes in the initial directed graph except the passing nodes of the determined shortest distance path (first path). Then, when the separation path is established by iteration, the calculation boundary is clear, the first path is updated by iteration, and the connected components are merged and updated based on the updated first path until the source node and the destination node are located in the same connected component. The updated first path corresponding to the last iteration is determined as the first separation path, and the second separation path is determined based on the first separation path and the initial directed graph. The number of iterations in the whole process does not exceed the number of connected components, that is, the method of the present embodiment can effectively and quickly plan the second path for the network after determining the first path, reduces the overhead of establishing the separation path, and adapts to the dynamic planning demand of the communication network in the Internet era. In the process of establishing the separation path, the number of virtual nodes or connection channels is not increased, that is, the complexity of the scheme calculation is not increased.
[0075] In addition, the method of the embodiment of the present disclosure can quickly and effectively plan a communication path of node separation. For an application scenario requiring planning of main and standby node separation, when a failure occurs in a passing network element or a relay channel of one path, the integrity of the other path is not affected, the business is quickly switched and recovered, the survivability of the communication network business is improved, the quality of the telecommunication business is improved, and the user perception is enhanced.
[0076] In an example embodiment, an implementation of determining a connected component is provided. As Figure 4 determining a plurality of connected components corresponding to the initial directed graph based on the first path can include steps S410 and S420:
[0077] Step S410: taking the passing nodes of the first path as a blocking point, and taking the nodes having a connected relationship in the initial directed graph as a point set; wherein the point set does not contain the passing nodes of the first path.
[0078] Continuing to refer to Figure 3 , the passing nodes (a2, a3, c1, c2, c4, c6, c5, b1, b3) of the first path are taken as the blocking point, that is, each connected component does not pass through the passing nodes of the first path, and the point set formed by the nodes having a connected relationship in the initial directed graph includes (s, a1, a4), (c3), and (b2, b4, d). The nodes in each point set are connected, and do not pass through the passing nodes of the first path or have a common node with other point sets.
[0079] Step S420: determining a plurality of connected components corresponding to the initial directed graph according to the obtained plurality of point sets.
[0080] Based on the plurality of point sets Figure 3 , a plurality of connected components (s, a1, a4), (c3), and (b2, b4, d) are obtained, and based on the plurality of connected components Figure 3 , it can be known that the source node s is located in the connected component (s, a1, a4), and the destination node d is located in the connected component (b2, b4, d).
[0081] The embodiment of the present disclosure innovatively proposes to determine a plurality of connected components of an initial directed graph based on a first path (a shortest distance path), so as to facilitate subsequent merging and updating iteration processes of the connected components based on the plurality of connected components, until the source node and the destination node are located in the same connected component.
[0082] The contents involved in one iteration process in step S230 will be described in detail below.
[0083] Figure 5 A flowchart of one iteration process according to an example embodiment of the present disclosure is shown, which can include steps S510 to S530:
[0084] Step S510: determining a current first path, and performing a pruning operation on the initial directed graph based on the current first path to obtain an updated graph.
[0085] In the first iteration process, the current first path is the shortest distance path between the source node and the destination node determined in step S210, and in the subsequent iteration process, the current first path is the updated first path corresponding to the previous iteration process of the current iteration process.
[0086] The pruning operation on the initial directed graph based on the current first path to obtain an updated graph can include:
[0087] Determining the passing nodes in the current first path except the source node and the destination node;
[0088] Deleting the outgoing edges of the passing nodes in the initial directed graph to obtain the updated graph.
[0089] The outgoing edges of the passing nodes can also be referred to as the out-degree of the passing nodes. If the current first path is (s, v1, v2, …, vn, d), then the passing nodes of the first path are (v1, v2, …, vn). n If the current first path is (s, v1, v2, …, vn, d), then the passing nodes of the first path are (v1, v2, …, vn). n If the current first path is (s, v1, v2, …, vn, d), then the passing nodes of the first path are (v1, v2, …, vn). n If the current first path is (s, v1, v2, …, vn, d), then the passing nodes of the first path are (v1, v2, …, vn).
[0090] Step S520: obtaining the farthest reachable node of the source node in the updated graph, and updating the current first path based on the farthest reachable node, the current first path and the updated graph to obtain an updated first path.
[0091] Firstly, based on the updated graph, the connectivity between the source node and the passing nodes of the current first path can be detected, and the farthest reachable passing node is determined as the farthest reachable node.
[0092] Among them, the order of the reachable nodes is recorded as (v i ,…,v j ), which can be empty, and if it is not empty, there must exist 1≤i≤j≤n, v i and v j nodes will split s into a connected component.
[0093] Secondly, based on the updated graph, the first sub-path without common passing nodes with the current first path can be obtained with the source node as the starting point and the farthest reachable node as the end point.
[0094] For example, if the farthest reachable node is determined as v j , then the first sub-path without common passing nodes with the current first path can be obtained with s as the starting point and v jAs the end point, the first sub-path (s, …, v n ) is obtained, where v j is the farthest reachable node in the current first path (s, v j , v n , …, v j , d) and d is the destination node. n ,d) is the first sub-path without common passing nodes. j ) is the first sub-path without common passing nodes.
[0095] It is worth noting that the process of determining the first sub-path is still calculated based on the principle of the shortest distance path, so that the first sub-path is the shortest distance path between the source node s and the farthest reachable node v j , and has no common passing node with the current first path. The specific algorithm used by the embodiments of the present disclosure to calculate the first sub-path is not specially limited.
[0096] Further, the second sub-path is formed according to the nodes after the farthest reachable node in the current first path. For example, the nodes after the farthest reachable node v n in the current first path (s, v j , v j+1 , …, v n , d) are obtained to form the second sub-path (v j , …, v j+1 , d).
[0097] Finally, the first sub-path and the second sub-path are spliced to obtain the updated first path corresponding to the current first path.
[0098] For example, the first sub-path (s, …, v j ) and the second sub-path (v j+1 , …, v n , d) are spliced to obtain the updated first path (s, …, v j , v j+1 , …, v n , d).
[0099] At this point, the updated first path corresponding to the current iteration is obtained. Based on the updated first path, the subsequent steps of the current iteration are executed, or when the current iteration ends and enters the next iteration, the updated first path will be used as the current first path in the next iteration process.
[0100] Step S530: determining the connected components corresponding to the initial directed graph based on the updated first path, and determining whether the source node and the destination node are located in the same connected component.
[0101] After the updated first path (s, …, v j , v j+1 , …, v n is determined, the connected components corresponding to the initial directed graph are determined based on the updated first path, and it is determined whether the source node s and the destination node d are located in the same connected component.d) after the updated first path, if the updated first path makes the connected components of the initial directed graph reduced by at least one compared with the previous first path, the connected components of the initial directed graph can be determined according to the updated first path, and it is judged whether the source node and the destination node are located in the same connected component.
[0102] If the source node and the destination node are located in the same connected component, it means that there are two separated paths of node separation, and the whole iteration process is ended, and the current iteration number is determined as the total iteration number, and the updated first path corresponding to the current iteration process is taken as the first separated path.
[0103] On the contrary, if the source node and the destination node are located in different connected components, it means that the two separated paths of node separation cannot be determined at present, and the step of determining the current first path is returned to, so as to perform the next iteration process, and the updated first path corresponding to the present iteration process is determined as the current first path corresponding to the next iteration process.
[0104] As can be seen from the above content of the iteration process, in each iteration process, the first path is updated, and the connected components of the initial directed graph are merged and updated by using the updated first path. Through a limited number of iterations (at most not more than the number of connected components), the source node and the destination node are finally located in the same connected component, and then the two separated paths are obtained. Compared with the brute force traversal of the prior art, the establishment efficiency and accuracy of the separated paths are greatly improved.
[0105] In an exemplary embodiment, before the next iteration process is performed after the current iteration process ends, the following steps can also be included:
[0106] It is judged whether the shortest distance path can be determined according to the remaining nodes in the initial directed graph except the nodes passed through by the updated first path. If yes, the iteration is ended, and the two separated paths are determined as the two shortest distance paths; otherwise, the next iteration process is allowed to be performed.
[0107] That is to say, before entering the next iteration process each time, it can be judged whether there is a shortest distance path separated from the updated first path based on the updated first path corresponding to the present iteration process and the initial directed graph. If yes, the complete iteration process can be ended, and the updated first path and the determined shortest distance path are taken as the two separated paths.
[0108] In an exemplary embodiment, an implementation mode for determining that there is no two separated paths of node separation is also provided. As shown in FIG. 6, in the case of continuing the next iteration process, the following steps S610 to S640 are also included: Figure 6 In an exemplary embodiment, an implementation mode for determining that there is no two separated paths of node separation is also provided. As shown in FIG. 6, in the case of continuing the next iteration process, the following steps S610 to S640 are also included:
[0109] Step S610: Obtain the farthest reachable node of the update graph corresponding to the previous iteration process of the next iteration process, and determine the corresponding first position information.
[0110] wherein, first, the update graph corresponding to the previous iteration process of the next iteration process is determined, and the manner of obtaining the update graph can be referred to step S510, which will not be repeated here. Secondly, the farthest reachable node of the update graph is obtained, and the manner of obtaining the farthest reachable node can be referred to step S520, which will not be repeated here. Finally, the first position information of the farthest reachable node is determined, such as based on the record of the order of reachable nodes as (v i ,…,v j 1 ) to determine that the first position information is v j 1 .
[0111] Step S620: Determine the update graph corresponding to the next iteration process. The manner of determining the update graph corresponding to the next iteration process can also be referred to step S510, which will not be repeated here.
[0112] Step S630: Obtain the second position information of the farthest reachable node in the update graph corresponding to the next iteration process. For example, the second position information can be determined as v i based on the record of the order of reachable nodes as (v j 2 ). j 2 .
[0113] Step S640: Determine whether the second position information is closer to the destination node than the first position information.
[0114] wherein, if the second position information is closer to the destination node than the first position information, the next iteration process is allowed to continue; otherwise, the iteration is ended, and a prompt information is output to indicate that it is impossible to determine two separate paths.
[0115] Specifically, if v j 2 of the second position information is farther than v j 1 of the first position information, i.e., the second position information is closer to the destination node than the first position information, it indicates that there are at least two paths of node separation for the source node to reach v j 2 and v j 2 -1 . At this point, the two connected components have been combined through the previous iteration process.
[0116] And if v j2 the first position information v j 1 That is, the farther connected component cannot be reached, which indicates that there are no two node-separated paths out of the current connected component and no two separated paths to the destination node. At this point, it is determined that the current communication network cannot obtain the separated path of the node separation, and the iteration process does not need to continue.
[0117] It should be noted that in the first iteration process, the first position information of the previous iteration process does not exist, and the first passing node v1 of the current first path in the iteration process can be taken as v j 1 Of course, the preset parameter can also be taken as the first position information according to actual needs.
[0118] Based on the comparison result of the position information of the farthest reachable node, the current communication network cannot obtain the separated path of the two node separations in the iteration process, so as to stop the calculation in time, avoid finding that the result cannot be obtained after traversing all paths, and save the calculation resources and time.
[0119] In an exemplary embodiment, an implementation of an initial directed graph is also provided. The process of obtaining the initial directed graph based on the communication network topology where the source node and the destination node are located includes:
[0120] Converting the network nodes into a vertex set;
[0121] The channels between the network nodes carrying weights are converted into an edge set; wherein the channels between the network nodes are determined based on whether the channels meet the service bandwidth;
[0122] Constructing the initial directed graph based on the vertex set and the edge set.
[0123] Wherein, when implemented in a communication network, the network nodes can be converted into a vertex set (V), and the channels between the nodes carrying weights can be converted into an edge set (E) to form an initial directed graph.
[0124] The channels between every two network nodes are screened based on whether the service bandwidth is met, specifically:
[0125] If there is no channel satisfying the service bandwidth, there is no edge between the vertices in the corresponding graph; if there is one or more channels satisfying the service bandwidth, the cost of these edges is set first. Under the delay priority optimal path requirement, the cost of the edge is the delay; if the optimal path requirement is the hop count, the cost of all edges is 1; if the resource utilization rate is prior, the residual bandwidth of the channel can be converted into the cost. Since the initial directed graph is a simple graph, the edge with the minimum cost between two vertices is reserved. The starting point of the service and the end point of the service are taken as the source node s and the destination node d respectively.
[0126] Figure 7 A complete flowchart of communication path planning according to an example embodiment of the present disclosure is shown, and the process of communication path planning of the example embodiment of the present disclosure is described below with reference to Figure 7 and Figure 3 .
[0127] Step S710: based on the service requirement, the communication network is converted into an initial directed graph G(V, E).
[0128] The initial directed graph can be seen from Figure 3 . In the initial directed graph, the starting point of the service is the source node s, and the end point of the service is the destination node d.
[0129] Step S720: the shortest distance path between the source node and the destination node is determined as the first path according to the initial directed graph.
[0130] Referring to Figure 3 , the first path is (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d). Of course, Figure 3 the shortest distance path shown in is not unique, and the first path determined in this step of the example embodiment of the present disclosure can be any shortest distance path calculated, which does not affect the result of subsequent communication path planning.
[0131] In step S730, it is determined whether the first path is calculated.
[0132] If the first path is calculated, the process goes to step S740; otherwise, it is confirmed that the current communication network does not have two separated paths of node separation, and then the process goes to step S790, ending the process of establishing the separated path, i.e. ending the process of communication path planning.
[0133] Step S740: the shortest distance path between the source node and the destination node is determined according to the remaining nodes in the initial directed graph except the nodes passed through by the first path.
[0134] If the shortest distance path is obtained in step S740, the shortest distance path and the first path actually constitute two separated paths completely separated by the passing nodes, and the process goes to step S7100, one of the two separated paths is taken as the working path and the other is taken as the protection path.
[0135] Otherwise, if the shortest distance path is not obtained, it means that the passing nodes (a2, a3, c1, c2, c4, c6, c5, b1, b3) of the first path divide G(V, E) into two or more connected components. Referring to Figure 3 , the first path divides the initial directed graph into three connected components: (s, a1, a4), (c3) and (b2, b4, d). In this case, the source node s and the destination node d are located in different connected components, so the shortest distance path separated from the first path cannot be obtained, and the process goes to step S760 to enter the iteration branch.
[0136] Step S760: determine the passing nodes in the current first path except the source node and the destination node; delete the outgoing edges of the passing nodes in the initial directed graph to obtain an updated graph, and detect the connectivity between the source node and the passing nodes in the current first path, and determine the farthest reachable node according to the detection result.
[0137] Referring to Figure 3 , the passing nodes of the current first path are (a2, a3, c1, c2, c4, c6, c5, b1, b3), and after deleting the outgoing edges of these passing nodes, the connectivity between the source node s and the passing nodes in the current first path is detected, and the reachable nodes (non-empty) are recorded to determine that the source node s can reach the farthest node of the current first path, i.e. the farthest reachable node is c2, and the process goes to step S770.
[0138] Step S770: determine whether the farthest reachable node of the current iteration is closer to the destination node d than the farthest reachable node of the previous iteration.
[0139] If the current iteration is the first iteration, the farthest reachable node of the previous iteration is determined as the first passing node of the current first path, i.e. a2, and c2 is closer to the destination node d than a2, and the process goes to step S780. Otherwise, the process goes to step S790 to end the process of establishing separated paths, i.e. end the process of communication path planning.
[0140] Step S780: update the current first path based on the farthest reachable node, the current first path and the updated graph to obtain an updated first path.
[0141] Referring to Figure 3In the present iteration process, the farthest reachable node is determined to be c2, and the current first path is (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d). The updated graph is obtained by removing the outgoing edges of the nodes passed through by the current first path from the initial graph.
[0142] Firstly, based on the updated graph, the first sub-path (s, a1, a4, c2) that does not have a common node with the current first path (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d) is obtained, with the source node s as the starting point and the farthest reachable node c2 as the end point. Secondly, the second sub-path (c4, c6, c5, b1, b3, d) is formed according to the nodes after the farthest reachable node c2 in the current first path (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d). Finally, the first sub-path (s, a1, a4, c2) and the second sub-path (c4, c6, c5, b1, b3, d) are spliced to obtain the updated first path (s, a1, a4, c2, c4, c6, c5, b1, b3, d) corresponding to the current first path (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d).
[0143] Referring to Figure 3 Based on the updated first path (s, a1, a4, c2, c4, c6, c5, b1, b3, d), it is determined that the initial directed graph is divided into two connected components: (s, a2, a3, c1, c3) and (b2, b4, d), that is, through one iteration process, the number of connected components of the initial directed graph is reduced by one, and then the second iteration process is performed in step S740.
[0144] The second iteration process is described below.
[0145] In step S740, it is determined whether the shortest distance path can be determined according to the remaining nodes in the initial directed graph except the nodes passed through by the updated first path.
[0146] If the shortest distance path can be determined according to the remaining nodes in the initial directed graph except the nodes passed through by the updated first path, the process proceeds to step S7100. Otherwise, the process proceeds to step S760.
[0147] In step S760 of the second iteration process, the passing nodes of the current first path are (a1, a4, c2, c4, c6, c5, b1, b3), the out-edges of the passing nodes are deleted, the connectivity between the source node s and the passing nodes of the current first path is detected, and the reachable nodes (non-empty) are recorded to determine that the source node s can reach the farthest node of the current first path, i.e., the farthest reachable node is c5, and the process proceeds to step S770.
[0148] In step S770 of the second iteration process, it is determined whether the farthest reachable node c5 of the current iteration process is closer to the destination node d than the farthest reachable node c2 of the previous iteration process.
[0149] If the farthest reachable node c5 of the current iteration process is closer to the destination node d than the farthest reachable node c2 of the previous iteration process, the process proceeds to step S780.
[0150] In step S780 of the second iteration process, based on the farthest reachable node c5, the current first path (s, a1, a4, c2, c4, c6, c5, b1, b3, d), and the updated graph, the current first path (s, a1, a4, c2, c4, c6, c5, b1, b3, d) is updated to obtain an updated first path.
[0151] First, based on the updated graph, the first sub-path (s, a2, a3, c1, c3, c5) that does not have a common passing node with (s, a1, a4, c2, c4, c6, c5, b1, b3, d) is obtained by taking the source node s as the starting point and the farthest reachable node c5 as the ending point; second, the second sub-path (b1, b3, d) is formed according to the nodes after the farthest reachable node c5 in the current first path (s, a1, a4, c2, c4, c6, c5, b1, b3, d); and finally, the first sub-path (s, a2, a3, c1, c3, c5) and the second sub-path (b1, b3, d) are spliced to obtain the updated first path (s, a2, a3, c1, c3, c5, b1, b3, d) corresponding to the current first path (s, a1, a4, c2, c4, c6, c5, b1, b3, d).
[0152] Referring to Figure 3The updated first path (s, a2, a3, c1, c3, c5, b1, b3, d) does not divide the source node s and the destination node d into different connected components, that is, the source node and the destination node are located in the same connected component. At this point, after the second iteration, the total iteration ends, and the total number of iterations is determined to be 2, and then the step S7100 is turned to, the updated first path (s, a2, a3, c1, c3, c5, b1, b3, d) corresponding to the second iteration process is determined as the first separation path, and the second separation path is determined based on the first separation path and the initial directed graph, for example, (s, a1, a4, c2, c4, c6, b2, b4, d).
[0153] It should be noted that if the updated first path obtained in the second iteration process does not make the source node s and the destination node d located in the same connected component, then it is returned to the step S740 to perform a third iteration process or even an iteration process of more times i, until the updated first path corresponding to the i-th iteration process makes the source node s and the destination node d located in the same connected component. The embodiment of the disclosure is only described by taking that two separation paths can be determined through two iterations as an example, and is not a specific limitation on the number of iterations.
[0154] Figure 8 A communication network topology diagram in which separation paths cannot be established is shown according to an example embodiment of the disclosure. The following describes the process of determining that there are no two separation paths passing through node separation in the communication network topology in time according to the communication path planning method based on the embodiment of the disclosure. Figure 7 and Figure 8 The process of determining that there are no two separation paths passing through node separation in the communication network topology in time according to the communication path planning method based on the embodiment of the disclosure is described.
[0155] Step S710: converting the communication network into an initial directed graph G(V, E) based on the service requirement.
[0156] Step S720: determining the shortest distance path between the source node and the destination node as the first path according to the initial directed graph.
[0157] Referring to Figure 8 , the first path is (s, a2, a3, c1, c2, c4, c5, b1, b3, d).
[0158] In step S730, it is determined whether the first path is calculated.
[0159] If the first path is calculated, it is turned to step S740; otherwise, it is confirmed that there are no two separation paths passing through node separation in the current communication network, and then it is turned to step S790 to end the process of establishing separation paths, that is, to end the process of communication path planning.
[0160] Step S740: Determine the shortest distance path between the source node and the destination node based on the remaining nodes in the initial directed graph except the nodes passed by the first path.
[0161] Among them, in step S750, if the shortest distance path is obtained, then this shortest distance path and the first path actually constitute two separate paths with completely separated nodes, then go to step S7100, one of the two separate paths is used as the working path and the other path is used as the protection path.
[0162] Otherwise, if the shortest distance path is not obtained, it means that the nodes (a2, a3, c1, c2, c4, c6, c5, b1, b3) of the first path divide G(V, E) into two or more connected components. Figure 8 The first path divides the initial directed graph into three connected components: (s, a1, a4), (c3), and (b2, b4, d). In this case, the source node s and the destination node d are located in different connected components, so the shortest distance path that separates the nodes on the first path cannot be obtained. In this case, the process proceeds to step S760 and enters the iteration branch.
[0163] Step S760: Determine the nodes passing through the current first path except the source node and the destination node; delete the outgoing edges of the passing nodes in the initial directed graph to obtain an updated graph, and detect the connectivity between the source node and the passing nodes of the current first path with the source node as the starting point, and determine the farthest reachable node based on the detection results.
[0164] See also Figure 8 As shown, the nodes passing through the current first path are (a2, a3, c1, c2, c4, c6, c5, b1, b3). After deleting the outgoing edges of these passing nodes, the connectivity between the source node s and the passing nodes of the current first path is detected with the source node s as the starting point, and the reachable nodes (non-empty) are recorded to determine whether the source node s can reach the farthest node of the current first path, that is, the farthest reachable node is c2, and go to step S770.
[0165] Step S770: Determine whether the farthest reachable node in this iterative process is closer to the destination node d than the farthest reachable node in the previous iterative process.
[0166] Since this is the first iteration, the most distant node in the previous iteration is determined to be the first node of the current first path, i.e., a2. If c2 is closer to the destination node d than a2, the process proceeds to step S780. Otherwise, the process proceeds to step S790, ending the process of establishing the split path.
[0167] Step S780: Based on the farthest reachable node, the current first path and the updated graph, the current first path is updated to obtain an updated first path.
[0168] Referring to Figure 8 In the current iteration process, the farthest reachable node is determined as c2, the current first path is (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d), and the updated graph is obtained by removing the outgoing edges of the nodes passed through by the current first path from the initial graph.
[0169] Firstly, based on the updated graph, the first sub-path (s, a1, a4, c2) that does not have a common node passed through with the current first path (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d) is obtained, with the source node s as the starting point and the farthest reachable node c2 as the end point; secondly, the second sub-path (c4, c6, c5, b1, b3, d) is formed according to the nodes after the farthest reachable node c2 in the current first path (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d); and finally, the first sub-path (s, a1, a4, c2) and the second sub-path (c4, c6, c5, b1, b3, d) are spliced to obtain the updated first path (s, a1, a4, c2, c4, c6, c5, b1, b3, d) corresponding to the current first path (s, a2, a3, c1, c2, c4, c6, c5, b1, b3, d).
[0170] Referring to Figure 8 Based on the updated first path (s, a1, a4, c2, c4, c6, c5, b1, b3, d), the number of connected components corresponding to the initial directed graph has not been reduced. At this time, the connected components are (s, a2, a3, c1), (c3), and (b2, b4, d), and the process proceeds to step S740 for a second iteration process.
[0171] The second iteration process is described below.
[0172] In step S740, it is determined whether the shortest distance path can be determined according to the remaining nodes in the initial directed graph except for the nodes passed through by the updated first path.
[0173] If the shortest distance path can be determined according to the remaining nodes in the initial directed graph except for the nodes passed through by the updated first path, the process proceeds to step S7100. Otherwise, the process proceeds to step S760.
[0174] In step S760 of the second iteration process, the passing nodes of the current first path are (a1, a4, c2, c4, c6, c5, b1, b3), the out edges of the passing nodes are deleted, the connectivity between the source node s and the passing nodes of the current first path is detected, and the reachable nodes (non-empty) are recorded to determine that the source node s can reach the farthest node of the current first path, i.e., the farthest reachable node is c2, and the process proceeds to step S770.
[0175] In step S770 of the second iteration process, it is determined whether the farthest reachable node c2 of the current iteration process is closer to the destination node d than the farthest reachable node c2 of the previous iteration process.
[0176] If it is determined that the farthest reachable node c2 of the current iteration process is not closer to the destination node d than the farthest reachable node c2 of the previous iteration process, it is indicated that the iteration process cannot reach a farther connected component, i.e., it is determined that the current communication network does not have two separate paths with node separation, and the process proceeds to step S790 to end the process of establishing separate paths, i.e., to end the process of communication path planning.
[0177] In the embodiments of the present disclosure, by comparing the farthest reachable nodes in the two iteration processes, it can be determined in time that the current communication network cannot establish two separate paths with node separation, so as to stop the calculation process in time and reduce the waste of calculation resources and time.
[0178] In an exemplary embodiment, if it is determined that the separate paths cannot be established, i.e., the communication path planning fails, a prompt information can be sent to the caller to indicate that the two separate paths cannot be determined. If the two separate paths are obtained, the paths in G(V, E) can be converted into ordered information of network nodes, channels, etc., and related information of determining the two separate paths, and fed back to the caller, so that the caller uses the returned information to perform subsequent pre-occupation or activation of the paths in the network, etc.
[0179] In summary, the communication path planning method in the example embodiment of the present disclosure has the following advantages. When the shortest distance path between the source node and the destination node cannot be determined according to the remaining nodes in the initial directed graph except the passing nodes of the determined shortest distance path (the first path), the network is divided into multiple connected components based on the first path, and when the subsequent separated paths are established by iteration, the calculation boundary is clear. Compared with the brute-force traversal method of the prior art, the first path is updated through the iteration process, and the merging and updating of the connected components are implemented based on the updated first path, until the source node and the destination node are located in the same connected component. Then, the updated first path corresponding to the last iteration is determined as the first separated path, and the second separated path is determined based on the first separated path and the initial directed graph. The number of iterations in the whole process will not exceed the number of connected components. That is, the method of the embodiment of the present disclosure can effectively and quickly plan the second path for the network after determining the first path, reduces the overhead of establishing the separated path, and adapts to the dynamic planning demand of the communication network in the Internet era. On the other hand, in the process of establishing the separated path, the number of virtual nodes or connection channels is not increased, that is, the complexity of the scheme calculation is not increased. On the other hand, the method of the embodiment of the present disclosure can quickly and effectively establish the separated path. For the application scenario in which the master and standby node separation needs to be planned, when the passing network element or relay channel of one path fails, the integrity of the other path is not affected, the business is quickly switched and recovered, the survival ability of the communication network business is improved, the telecommunication service quality is improved, and the user perception is enhanced.
[0180] Further, according to the example embodiment of the present disclosure, a communication path planning device is also provided. As shown in the Figure 9 communication path planning device 900 of the embodiment of the present disclosure can include:
[0181] The first determination module 910 is configured to determine the shortest distance path between the source node and the destination node as the first path according to the initial directed graph, wherein the initial directed graph is obtained based on the communication network topology in which the source node and the destination node are located.
[0182] The second determination module 920 is configured to determine the multiple connected components corresponding to the initial directed graph based on the first path, if the shortest distance path between the source node and the destination node cannot be determined according to the remaining nodes in the initial directed graph except the passing nodes of the first path. Each connected component does not have a common passing node with the first path, and each connected component does not have a common node.
[0183] The execution module 930 is configured to execute an iteration process until the source node and the destination node are located in the same connected component; wherein each iteration process comprises updating the first path, and implementing merging and updating of the connected component based on the updated first path.
[0184] The third determination module 940 is configured to determine the updated first path corresponding to the i th iteration process as a first separated path, and determine a second separated path based on the first separated path and the initial directed graph, the second separated path does not have a common passing node with the first separated path, i is the total number of iterations; wherein one of the two separated paths is used as a working path and the other is used as a protection path.
[0185] The specific details of the modules in the above apparatus have been described in detail in the method embodiments, and the undisclosed details can refer to the method embodiments, and thus will not be described again.
[0186] It should be noted that although several modules or units of the communication path planning apparatus are mentioned in the above detailed description, such division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided into a plurality of modules or units.
[0187] In addition, in the exemplary embodiments of the present disclosure, a computer storage medium capable of implementing the above method is also provided. A program product capable of implementing the above method of the present disclosure is stored thereon. In some possible embodiments, various aspects of the present disclosure can also be implemented in the form of a program product, which includes program code for causing the terminal device to perform the steps described in the above “Exemplary Methods” section according to various exemplary embodiments of the present disclosure when the program product is run on the terminal device.
[0188] The embodiments of the present disclosure also provide a program product for implementing the above method, which can adopt a portable compact disc read-only memory (CD-ROM) and include program code, and can be run on a terminal device, such as a personal computer. However, the program product of the present disclosure is not limited to this, and in this document, the readable storage medium can be any tangible medium containing or storing a program, which can be used or combined with an instruction execution system, device or apparatus.
[0189] The program product can employ any combination of one or more computer-readable media. The computer-readable media can be a computer-readable storage medium or a computer-readable signal medium. Computer-readable storage media can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include the following: an electrical connection having one or more wires, a portable disc, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0190] A computer-readable signal medium can include a propagated data signal with computer-readable program code embodied therein. The propagated data signal can take any of a variety of forms, including but not limited to electro-magnetic, optical, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium that is not a computer-readable storage medium and that can communicate, propagate, or transport program code for use by or in connection with an instruction execution system, apparatus, or device.
[0191] Program code embodied on a computer-readable medium can be transmitted using any appropriate medium, including but not limited to wireless, wired, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0192] Program code for carrying out operations of the present disclosure can be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C++, or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code can execute entirely on the user's computing device, partly on the user's computing device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device or entirely on the remote computing device or server. In the latter scenario, the remote computing device can be connected to the user's computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computing device, such as through the Internet using an Internet Service Provider. The computing device on which the program code executes can be any programmable computer system including multiple processors or a single processor, and can be used to implement any of the embodiments of the present disclosure.
[0193] Furthermore, in the exemplary embodiments of the present disclosure, a communication apparatus capable of implementing the above-described method is also provided. Those skilled in the art can understand that various aspects of the present disclosure can be implemented as a system, a method or a program product. Therefore, various aspects of the present disclosure can be embodied as a complete hardware embodiment, a complete software embodiment (including firmware, microcode, etc.), or an embodiment combining hardware and software aspects, which can be collectively referred to as "circuitry", "module" or "system" herein.
[0194] The communication apparatus 1000 according to this embodiment of the present disclosure will be described below with reference to Figure 10 Figure 10 The communication apparatus 1000 shown is merely an example, and should not bring any limitation to the functions and usage range of the embodiments of the present disclosure.
[0195] As shown in Figure 10 , the communication apparatus 1000 includes a processor 1001 and a memory 1002; the memory 1002 stores instructions executable by the processor 1001; and the processor 1001 is configured to execute the instructions, so that the communication apparatus 1000 implements the method described in the foregoing method embodiments.
[0196] From the above description of the embodiments, those skilled in the art can easily understand that the example embodiments described herein can be implemented by software, or by a combination of software and necessary hardware. Therefore, the technical solutions according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a U disk, a mobile hard disk, etc.) or a network, and includes a number of instructions to make a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) execute the methods according to the embodiments of the present disclosure.
[0197] In addition, the above-described drawings are only schematic illustrations of the processes included in the method according to the exemplary embodiments of the present disclosure, and are not for limitation purposes. It is easy to understand that the processes shown in the above-described drawings do not indicate or limit the time sequence of these processes. In addition, it is also easy to understand that these processes can be executed synchronously or asynchronously, for example, in multiple modules.
[0198] Other embodiments of the present disclosure will be readily apparent to those skilled in the art upon considering the specification and the practice of the disclosed subject matter. The present disclosure is intended to cover any variations, uses or adaptive changes of the present disclosure that follow the general principles of the present disclosure and include known or customary technical methods not disclosed in the present disclosure. The specification and examples are only considered as exemplary, and the true scope and spirit of the present disclosure are indicated by the claims.
Claims
1. A communication path planning method characterized by comprising: The method comprises: determining a shortest distance path between a source node and a destination node as a first path according to an initial directed graph, the initial directed graph being based on a communication network topology in which the source node and the destination node are located; if the shortest distance path between the source node and the destination node cannot be determined according to remaining nodes in the initial directed graph except for nodes on the first path, determining a plurality of connected components corresponding to the initial directed graph based on the first path, each connected component not having a common node with the first path, and each connected component not having a common node with another connected component; performing an iteration process until the source node and the destination node are located in the same connected component; wherein each iteration process comprises updating the first path, and implementing merging and updating of the connected components based on the updated first path; determining an updated first path corresponding to the i th iteration process as a first separate path, and determining a second separate path based on the first separate path and the initial directed graph, the second separate path not having a common node with the first separate path, i being a total number of iterations; wherein one of the two separate paths is a working path and the other is a protection path.
2. The method of claim 1, wherein, if the shortest distance path can be determined based on the remaining nodes in the initial directed graph except for the nodes on the first path, the method further comprises: determining the two obtained shortest distance paths as the two separate paths; wherein the two shortest distance paths do not have a common node.
3. The method of claim 1, wherein, The determination of the plurality of connected components corresponding to the initial directed graph based on the first path comprises: taking the nodes on the first path as blocking points, and taking nodes having a connected relationship in the initial directed graph as a point set; wherein the point set does not contain the nodes on the first path; determining the plurality of connected components corresponding to the initial directed graph according to the obtained plurality of point sets.
4. The method of claim 1, wherein, Each iteration process comprises the following steps: determining a current first path, and performing a pruning operation on the initial directed graph based on the current first path to obtain an updated graph; obtaining a farthest reachable node of the source node in the updated graph, updating the current first path based on the farthest reachable node, the current first path and the updated graph to obtain an updated first path; determining connected components corresponding to the initial directed graph based on the updated first path, and determining whether the source node and the destination node are located in the same connected component; if yes, the iteration ends, and a current iteration number is determined as the total number of iterations i; otherwise, returning to the step of determining the current first path to continue the next iteration process, wherein the updated first path is determined as the current first path.
5. The method of claim 4, wherein, The determination of the current first path and the pruning operation on the initial directed graph based on the current first path to obtain the updated graph comprises: determining nodes on the current first path except for the source node and the destination node; deleting outgoing edges of the nodes in the initial directed graph to obtain the updated graph.
6. The method of claim 5, wherein, The acquiring the farthest reachable node of the source node in the updated graph, updating the current first path based on the farthest reachable node, the current first path and the updated graph, and obtaining an updated first path, comprises: detecting connectivity between the farthest reachable node and a node on the current first path based on the updated graph, and determining the farthest reachable node according to a detection result; acquiring a first sub-path that has no common node with the current first path based on the updated graph, taking the source node as a starting point and the farthest reachable node as a terminal point; forming a second sub-path according to a node after the farthest reachable node in the current first path; splicing the first sub-path and the second sub-path to obtain an updated first path corresponding to the current first path.
7. The method of claim 4, wherein, Before the continuing the next iteration process, the method further comprises: determining whether a shortest distance path can be determined according to remaining nodes in the initial directed graph except for a node on the updated first path; if yes, then the iteration is ended, and the two obtained shortest distance paths are determined as the two separate paths; otherwise, then the next iteration process is allowed to be performed.
8. The method of claim 4, wherein, In the case of continuing the next iteration process, the method further comprises: acquiring a farthest reachable node of an updated graph corresponding to a previous iteration process of the next iteration process, and determining corresponding first position information; determining an updated graph corresponding to the next iteration process; acquiring second position information of the farthest reachable node in the updated graph corresponding to the next iteration process; determining whether the second position information is closer to the destination node than the first position information; if yes, then the next iteration process is allowed to be continued; otherwise, the iteration is ended, and prompt information is output to indicate that the two separate paths cannot be determined.
9. The method according to any one of claims 1 to 8, characterized in that, The process of obtaining the initial directed graph based on a communication network topology in which the source node and the destination node are located comprises: converting network nodes into a vertex set; converting channels between network nodes that carry weights into an edge set; wherein the channels between network nodes are determined based on whether the channels meet a service bandwidth; constructing the initial directed graph based on the vertex set and the edge set, wherein a starting point of a service is the source node, and a terminal point of the service is the destination node.
10. A communication path planning apparatus characterized by comprising: comprises: a first determining module configured to determine a shortest distance path between the source node and the destination node as a first path according to an initial directed graph, the initial directed graph being obtained based on a communication network topology in which the source node and the destination node are located; a second determining module configured to, if the shortest distance path between the source node and the destination node cannot be determined according to remaining nodes in the initial directed graph except for a node on the first path, determine a plurality of connected components corresponding to the initial directed graph based on the first path, each connected component having no common node with the first path, and each connected component having no common node with another connected component. The execution module is configured to execute an iteration process until the source node and the destination node are located in the same connected component; wherein each iteration process comprises updating the first path, and implementing merging and updating of the connected component based on the updated first path; The third determination module is configured to determine the updated first path corresponding to the i-th iteration process as a first separated path, and determine a second separated path based on the first separated path and the initial directed graph, the second separated path does not have a common passing node with the first separated path, i is the total number of iterations; wherein one path of the two separated paths is used as a working path and the other path is used as a protection path.
Citation Information
Patent Citations
Method and device for determining importance of communication nodes in power communication network
CN105721207A
Connectivity detection method, controller and equipment
CN106549819A