как графическая библиотека JUNG (PageRankWithPriors) обрабатывает весовые коэффициенты

У меня возникли проблемы с пониманием того, как граф JUNG обрабатывает весовые коэффициенты. Я использую PageRankWithPriors, и когда я использую конструктор без весов ребер, я получаю хорошие результаты, но когда я создаю PageRankWithPriors с весами ребер, я не получаю никаких результатов. PageRankWithPriors .getVertexScore() возвращает «NaN»

вот конструктор:

PageRankWithPriors<customVertex, customEdge> ranker = new PageRankWithPriors<customVertex, customEdge>(graph.getGraph(),
        new Transformer<customEdge, Double>() {
      @Override
      public Double transform(customEdge edge) {

          return edge.getnormalizedWeight();
      }
    },
    new Transformer<customVertex, Double>() {
      @Override
      public Double transform(customVertex vertex) {
        //return getSourceNodes().contains(vertex) ? 1.0 : 0;
          if (priorityVertexList !=null){
              if (priorityVertexList.contains(vertex)) return new Double((0.85/priorityVertexList.size())).doubleValue();
              else return new Double((0.15/(graph.getGraph().getVertexCount()-priorityVertexList.size()))).doubleValue();
          }
          else{
              return new Double((0.15/(graph.getGraph().getVertexCount()))).doubleValue();
          }
      }
    }, alpha);

поэтому мой вопрос в том, как интерпретируются веса ребер... могу ли я указать вес ребра 5 или он должен быть между 0 и 1? (вероятность)


person cm4l    schedule 02.11.2013    source источник


Ответы (1)


Веса ребер представляют вероятности перехода, поэтому сумма весов исходящих ребер данной вершины должна быть равна 1.

person Joshua O'Madadhain    schedule 02.11.2013
comment
Спасибо Вам за информацию. В конце концов я понял это, и теперь система работает нормально. хороший ответ. - person cm4l; 03.11.2013