Graph-Centrality-Pagerank

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

NAME
    "Graph::Centrality::Pagerank" - Computes pagerank of all nodes in a
    graph.

SYNOPSIS
      use Graph::Centrality::Pagerank;
      use Data::Dump qw(dump);
      my $ranker = Graph::Centrality::Pagerank->new();
      my $listOfEdges = [[1,2],[3,4]];
      dump $ranker->getPagerankOfNodes (listOfEdges => $listOfEdges);
      # dumps:
      # {
      #   1 => "0.175438596989046",
      #   2 => "0.324561403010954",
      #   3 => "0.175438596989046",
      #   4 => "0.324561403010954",
      # }

DESCRIPTION
    "Graph::Centrality::Pagerank" computes the pagerank of the all nodes in
    a graph. The input can be a list of edges or a Graph.
    "Graph::Centrality::Pagerank" is written entirely in Perl and is not
    recommended for use in high performance applications.

CONSTRUCTOR
  "new"
    The method "new" creates an instance of the
    "Graph::Centrality::Pagerank" class with the following parameters:

    "dampeningFactor"
         dampeningFactor => 0.85

        "dampeningFactor" is the dampening factor used when computing
        pagerank. It must be a value ranging from zero to one; the default
        is 0.85. Note the incidence matrix generated from the graph is
        multiplied (scaled) by "dampeningFactor", *not* by "1 -
        dampeningFactor".

    "maxRelError"
         maxRelError => sqrt (machine-epsilon)

        "maxRelError" is the maximum *average* relative error that is
        permitted between successive pagerank vectors before the iterative
        process to approximate the pagerank vector should be stopped. The
        default is the square root of the systems machine epsilon. Usually,
        most pagerank values computed will have "-log10(maxRelError)" digits
        of accuracy. "maxRelError" must be positive and less than or equal
        to 0.01.

    "minIterations"
         minIterations => 0

        "minIterations" is the minimum number of iterations that will be
        computed before the pagerank iterations are stopped, even if
        "maxRelError" is achieved. The default is zero.

    "maxIterations"
         maxIterations => int (2 * ((maxRelError / ln (dampeningFactor) + 1))

        "maxIterations" is the maximum number of iterations that can be
        performed to approximate the pagerank vector even if "maxRelError"
        is not achieved. The default is "2 * ((maxRelError / ln
        (dampeningFactor) + 1)". If "dampeningFactor" is zero, then
        "maxIterations" is one. If "dampeningFactor" is one, then
        "maxIterations" is equal to the total nodes in the graph.

    "linkSinkNodes"
         linkSinkNodes => 1

        In a directed graph sink nodes are the nodes with no edges emanating
        out from them. In the pagerank algorithm these nodes are
        automatically linked to all other nodes in the graph. To prevent
        this set "linkSinkNodes" to zero; the default is one.

    "directed"
         directed => 1

        If "directed" is true, the pagerank computations are done with the
        graph edges being directed. If "directed" is false, the pageranks
        are computed treating the graph as undirected; the default value of
        "directed" is one.

    "useEdgeWeights"
         useEdgeWeights => 0

        If "useEdgeWeights" is true, then any weight associated with an edge
        is used in the computation of pagerank. The default weight for any
        edge without an assigned weight is one. The default value of
        "useEdgeWeights" is zero, which forces all edge weights to be one.

METHOD
  "getPagerankOfNodes"
    The method "getPagerankOfNodes" computes the pagerank of each node in
    the graph. The graph can be defined using the "graph" parameter or by
    supplying a list of edges. All the parameters used by the constructor
    "new" can also be set here and they will override the values used with
    "new". "getPagerankOfNodes" returns a reference to a hash where the keys
    are the graph nodes and the values are the pageranks of the node.

    "graph"
         graph => Graph

        "graph" must be a Graph object. If the "directed" parameter was not
        set with the constructor "new" or with this method, then "directed"
        is set to the value of Graph->is_directed().

    "listOfEdges"
         listOfEdges => [['a',10],[10,11]]

        "listOfEdges" must be a list of edges, where an edge is a pair of
        strings of the form "[from-node, to-node]" or a triple of the form
        "[from-node, to-node, numeric-edge-weight]". Note that "graph" and
        "listOfEdges" can both be defined, in which case the union of their
        list of edges is used to compute the pageranks of the nodes.

    "listOfNodes"
         listOfNodes => ['a',10, 'b']

        "listOfNodes" is optional but, must be the list of nodes in the
        graph when provided; it defaults to all the nodes comprising the



( run in 0.586 second using v1.01-cache-2.11-cpan-71847e10f99 )