【项目实训】实验五 Python语法的综合练习

1.PageRank

实验背景

直观上,可以把网页排名看成一种通过网络流通的“流体”,沿着边从一个节点流到另一个节点,汇集在一些最重要的节点上。网页排名具体计算方法如下。

  1. 对于一个有n个节点的网络,设所有节点的网页排名初始值为1/n。

  2. 选择操作的步骤数为k。

  3. 对网页排名做k次更新操作,每次更新使用以下2个规则:

    • 基本网页更新规则:每个网页均等地将自己当前的网页排名值分配给所有向外的链接,这些链接将这些均等的值传递给所指向的网页。(如果网页没有指向其他网页的链接,就将当前所有网页排名值传递给自身。)每个页面以其获得的所有网页排名值的总和更新它的网页排名。

    • 缩放网页排名更新规则:首先运行基本网页排名更新规则。然后用缩放因子s缩小所有网页排名值。这意味着网络中网页排名值的总和由缩小为s。将剩余的网页排名值1-s平均地分配给所有的节点,每个节点得到(1-s)/n。

实验目的

通过networkx库,实现PageRank,观察多次迭代后的每个网络节点的权值及其变化.可以尝试通过Matplotlib 绘制出网络权值图.

参考资料

  • networkx是用python语言编写的软件包,便于用户对复杂网络进行创建、操作和学习。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。

  • Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

  • 《网络群体与市场》大卫·伊斯利(美)第十四章 链接分析和网络搜索

实验结果

示例一:更新10次的网络节点图的权值对比.五

初始状态最终状态
节点 权值 0 0.125 1 0.125 2 0.125 3 0.125 4 0.125 5 0.125 6 0.125 7 0.125节点 权值 0 0.087 1 0.15 2 0.12 3 0.15 4 0.075 5 0.03 6 0.025 7 0.363

 

 

示例二:8个节点,初始时每个点有10%的概率连接到任意一个点,缩放因子s=0.8,迭代更新(游走)50万次后的结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值