• 大小: 2KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: Python
  • 标签: pagerank  

资源简介

基于Python实现的Pagerank算法 算法结果输出复杂网络中每个节点的重要性

资源截图

代码片段和文件信息

# -*- coding: UTF-8 -*-

“““
Created on 17-12-3

@summary: python 实现PageRank算法

@author: dreamhome
“““
import networkx as nx


def read_graph_from_file(path):
    “““
    :param path: 从文件中读取图结构
    :return: Graph graph
    “““
    # 定义图
    graph = nx.Graph()
    # 获取边列表edges_list
    edges_list = []
    # 开始获取边
    fp = open(path)
    edge = fp.readline().split()
    while edge:
        if edge[0].isdigit() and edge[1].isdigit():
            edges_list.append((int(edge[0]) int(edge[1])))
        edge = fp.readline().split()
    fp.close()
    # 为图增加边
    graph.add_edges_from(edges_list)

    return graph


def pagerank(graph damping_factor max_iterations delta):
    “““
    pagerank算法
    :param path: 图
    :param damping_factor: 阻尼系数
    :param max_iterations: 最大迭代次数
    :param delta: 算法终止条件
    :return: 返回每个节点的重要性
    “““
    # 获取图属性
    nodes = graph.nodes()
    graph_size = graph.number_of_nodes()
    # 每个节点赋予初始PR值
    page_rank = dict.fromkeys(nodes 1.0 / graph_size)
  

评论

共有 条评论