Content deleted Content added
m Move comma in parentheses. |
|||
(18 intermediate revisions by 13 users not shown) | |||
Line 1:
The '''Dijkstra–Scholten algorithm''' (named after [[Edsger W. Dijkstra]] and [[Carel S. Scholten]]) is an [[algorithm]] for detecting [[Termination analysis|termination]] in a [[distributed system]].<ref>{{citation|title=Distributed Systems: An Algorithmic Approach|first=Sukumar|last=Ghosh|publisher=CRC Press|year=2010|contribution=9.3.1 The Dijkstra–Scholten Algorithm|pages=140–143|url=https://books.google.com/books?id=aVjVzuav7cIC&pg=PA140|isbn=9781420010848}}.</ref><ref>{{citation|title=Distributed Algorithms: An Intuitive Approach|first=Wan|last=Fokkink|publisher=MIT Press|year=2013|isbn=9780262318952|pages=38–39|url=https://books.google.com/books?id=QqNWAgAAQBAJ&pg=PA38|contribution=6.1 Dijkstra–Scholten algorithm}}.</ref> The algorithm was proposed by Dijkstra and Scholten in 1980.<ref>{{citation
| last1 = Dijkstra | first1 = Edsger W.
| last2 = Scholten | first2 = C. S.
| doi = 10.1016/0020-0190(80)90021-6
| issue = 1
| journal = Information Processing Letters
| mr = 585394
| pages = 1–4
| title = Termination detection for diffusing computations
| url = http://www.cs.mcgill.ca/~lli22/575/termination3.pdf
| volume = 11
| year = 1980}}.</ref>
First,
==Algorithm==
The Dijkstra–Scholten algorithm is a tree-based algorithm which can be described by the following:
* The initiator of a computation is the root of the tree.
* Upon receiving a computational message:
** If the receiving process is currently not in the computation: the process joins the tree by becoming a child of the sender of the message. (No
** If the receiving process is already in the computation: the process immediately sends an
* When a process has no more children and has become idle, the process detaches itself from the tree by sending an
* Termination occurs when the initiator has no children and has become idle.
Line 35 ⟶ 46:
==See also==
* [[Huang's algorithm]]
==References==
{{reflist}}
{{Edsger Dijkstra}}
{{DEFAULTSORT:Dijkstra-Scholten Algorithm}}
[[Category:Graph algorithms]]
[[Category:Termination algorithms]]
[[Category:Edsger W. Dijkstra]]
|