A Note on Two Problems in Connexion with Graphs

About this paperTiếng Việt日本語

This paper is under a licence that does not allow it to be reproduced, so what is here is its front matter and a short abstract. Read it at the publisher's page.

English
中文

By E. W. DIJKSTRA

We consider nn points (nodes), some or all pairs of which are connected by a branch; the length of each branch is given. We restrict ourselves to the case where at least one path exists between any two nodes. We now consider two problems.

Problem 1. Construct the tree of minimum total length between the nn nodes. (A tree is a graph with one and only one path between every two nodes.)

In the course of the construction that we present here, the branches are subdivided into three sets: I. the branches definitely assigned to the tree under construction (they will form a subtree); II. the branches from which the next branch to be added to set I, will be selected; III. the remaining branches (rejected or not yet considered).

The nodes are subdivided into two sets: A. the nodes connected by the branches of set I, B. the remaining nodes (one and only one branch of set II will lead to each of these nodes).

We start the construction by choosing an arbitrary node as the only member of set A, and by placing all branches that end in this node in set II. To start with, set I is empty. From then onwards we perform the following two steps repeatedly.

Step 1. The shortest branch of set II is removed from this set and added to set I. As a result one node is transferred from set BB to set AA.

Step 2. Consider the branches leading from the node, that has just been transferred to set A, to the nodes that are still in set B. If the branch under consideration is longer than the corresponding branch in set II, it is rejected; if it is shorter, it replaces the corresponding branch in set II, and the latter is rejected.

We then return to step 1 and repeat the process until sets II and B are empty. The branches in set I form the tree required.

The solution given here is to be preferred to the solution given by J. B. KRUSKAL [1] and those given by H. LOBERMAN and A. WEINBERGER [2]. In their solutions all the — possibly 12n(n−1)\frac{1}{2} n(n-1) — branches are first of all sorted according to length. Even if the length of the branches is a computable function of the node coordinates, their methods demand that data for all branches are stored simultaneously. Our method only requires the simultaneous storing of the data for at most nn branches, viz. the branches in sets I and II and the branch under consideration in step 2.

Problem 2. Find the path of minimum total length between two given nodes PP and QQ.

We use the fact that, if RR is a node on the minimal path from PP to QQ, knowledge of the latter implies the knowledge of the minimal path from PP to RR. In the solution presented, the minimal paths from PP to the other nodes are constructed in order of increasing length until QQ is reached.

In the course of the solution the nodes are subdivided into three sets: A. the nodes for which the path of minimum length from PP is known; nodes will be added to this set in order of increasing minimum path length from node PP; B. the nodes from which the next node to be added to set A will be selected; this set comprises all those nodes that are connected to at least one node of set A but do not yet belong to A themselves; C. the remaining nodes.

The branches are also subdivided into three sets: I. the branches occurring in the minimal paths from node PP to the nodes in set A; II. the branches from which the next branch to be placed in set I will be selected; one and only one branch of this set will lead to each node in set B; III. the remaining branches (rejected or not yet considered).

To start with, all nodes are in set C and all branches are in set III. We now transfer node PP to set A and from then onwards repeatedly perform the following steps.

Step 1. Consider all branches rr connecting the node just transferred to set A with nodes RR in sets B or C. If node RR belongs to set B, we investigate whether the use of branch rr gives rise to a shorter path from PP to RR than the known path that uses the corresponding branch in set II. If this is not so, branch rr is rejected; if, however, use of branch rr results in a shorter connexion between PP and RR than hitherto obtained, it replaces the corresponding branch in set II and the latter is rejected. If the node RR belongs to set C, it is added to set B and branch rr is added to set II.

Step 2. Every node in set B can be connected to node PP in only one way if we restrict ourselves to branches from set I and one from set II. In this sense each node in set B has a distance from node PP: the node with minimum distance from PP is transferred from set B to set A, and the corresponding branch is transferred from set II to set I. We then return to step 1 and repeat the process until node QQ is transferred to set A. Then the solution has been found.

Remark 1. The above process can also be applied in the case where the length of a branch depends on the direction in which it is traversed.

Remark 2. For each branch in sets I and II it is advisable to record its two nodes (in order of increasing distance from PP), and the distance between PP and that node of the branch that is furthest from PP. For the branches of set I this is the actual minimum distance, for the branches of set II it is only the minimum thus far obtained.

The solution given above is to be preferred to the solution by L. R. Ford [3] as described by C. Berge [4], for, irrespective of the number of branches, we need not store the data for all branches simultaneously but only those for the branches in sets I and II, and this number is always less than nn. Furthermore, the amount of work to be done seems to be considerably less.

关于图的两个问题的一点注记

作者

E. W. DIJKSTRA

我们考虑nn个点(节点),其中某些或所有点对由一条分支连接;每条分支的长度均已给定。我们限于考虑任意两个节点之间至少存在一条路径的情形。现在考虑两个问题。

问题1。构造连接这nn个节点且总长度最小的树。(树是这样一种图:任意两个节点之间有且仅有一条路径。)

在我们这里给出的构造过程中,将分支划分为三个集合:

I. 确定归入正在构造的树中的分支(它们将构成一个子树);

II. 将从中选取下一条加入集合I的分支的分支;

III. 其余分支(已拒绝或尚未考虑)。

将节点划分为两个集合:

A. 由集合I中的分支连接的节点,

B. 其余节点(集合II中恰有一条分支通向这些节点中的每一个)。

我们首先任意选择一个节点作为集合A的唯一成员,并将所有终止于该节点的分支置于集合II中。开始时,集合I为空。此后,我们反复执行以下两个步骤。

步骤1。从集合II中移除最短的分支,并将其加入集合I。

References

  1. Kruskal jr., J. B.: On the Shortest Spanning Subtree of a Graph and the Travelling Salesman Problem. Proc. Amer. Math. Soc. 7, 48—50 (1956).
  2. Loberman, H., and A. Weinberger: Formal Procedures for Connecting Terminals with a Minimum Total Wire Length. J. Ass. Comp. Mach. 4, 428—437 (1957).
  3. Ford, L. R.: Network flow theory. Rand Corp. Paper, P-923, 1956.
  4. Berge, C.: Théorie des graphes et ses applications, pp. 68—69. Paris: Dunod 1958. Mathematisch Centrum 2e Boerhaavestraat 49 Amsterdam-O (Received June 11, 1959)

Read off the page by a vision model reading the page images using olmOCR-2-7B-1025-FP8.

Read off the page by a vision model reading the page images using olmOCR-2-7B-1025-FP8. Translated into 中文 by gpt-5, against glossary version 6. Translated from the English.