1 .. Copyright (C) 2004-2008 The Trustees of Indiana University.
2 Use, modification and distribution is subject to the Boost Software
3 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
4 http://www.boost.org/LICENSE_1_0.txt)
13 template<typename Graph, typename RankMap, typename Done>
15 page_rank(const Graph& g, RankMap rank_map, Done done,
16 typename property_traits<RankMap>::value_type damping = 0.85);
18 template<typename Graph, typename RankMap>
20 page_rank(const Graph& g, RankMap rank_map);
23 The ``page_rank`` algorithm computes the ranking of vertices in a
24 graph, based on the connectivity of a directed graph [PBMW98]_. The
25 idea of PageRank is based on a random model of a Web surfer, who
26 starts a random web page and then either follows a link from that web
27 page (choosing from the links randomly) or jumps to a completely
28 different web page (not necessarily linked from the current
29 page). The PageRank of each page is the probability of the random web
30 surfer visiting that page.
36 <``boost/graph/distributed/page_rank.hpp``>
40 <``boost/graph/page_rank.hpp``>
46 The graph type must be a model of `Distributed Vertex List Graph`_ and
47 `Distributed Edge List Graph`_. The graph must be directed.
50 Stores the rank of each vertex. The type ``RankMap`` must model the
51 `Read/Write Property Map`_ concept and must be a `distributed
52 property map`_. Its key type must be the vertex descriptor of the
53 graph type and its value type must be a floating-point or rational
57 A function object that determines when the PageRank algorithm
58 should complete. It will be passed two parameters, the rank map and
59 a reference to the graph, and should return ``true`` when the
60 algorithm should terminate.
62 **Default**: ``graph::n_iterations(20)``
64 IN: ``typename property_traits<RankMap>::value_type damping``
65 The damping factor is the probability that the Web surfer will
66 select an outgoing link from the current page instead of jumping to
73 Each iteration of PageRank requires *O((V + E)/p)* time on *p*
74 processors and performs *O(V)* communication. The number of
75 iterations is dependent on the input to the algorithm.
80 .. [PBMW98] Lawrence Page, Sergey Brin, Rajeev Motwani, and Terry
81 Winograd. The PageRank Citation Ranking: Bringing Order to the
82 Web. Technical report, Stanford Digital Library Technologies Project,
85 -----------------------------------------------------------------------------
87 Copyright (C) 2005 The Trustees of Indiana University.
89 Authors: Douglas Gregor and Andrew Lumsdaine
91 .. |Logo| image:: pbgl-logo.png
94 :target: http://www.osl.iu.edu/research/pbgl
96 .. _Distributed Vertex List Graph: DistributedVertexListGraph.html
97 .. _Distributed Edge List Graph: DistributedEdgeListGraph.html
98 .. _Distributed property map: distributed_property_map.html
99 .. _Readable Property Map: http://www.boost.org/libs/property_map/ReadablePropertyMap.html
100 .. _Read/Write Property Map: http://www.boost.org/libs/property_map/ReadWritePropertyMap.html