【数模】基于PageRank算法的学术论文重要性排序问题(matlab实现)

基于PageRank算法的学术论文排序问题(matlab实现)

问题描述

六篇学术论文的引用关系如图, A 指向 B 表示 A 引用 B ,试排出它们重要性的顺序。
在这里插入图片描述

问题分析

就是给节点来个重要性排序。

PageRank简介

PageRank,又称网页排名、谷歌左侧排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一。

在这里插入图片描述

就如上图:好多脸都指着这个黄脸,所以这个黄脸最大,换言之,最重要。

PageRank算法说明

在 PageRank 算法的每一步中,每个网页的得分都会根据以下公式更新:

r = (1-P)/n + P*(A'*(r./d) + s/n);
  • r 是 PageRank 得分的向量。
  • P 是标量阻尼因子(通常为 0.85),这是随机浏览者点击当前网页上的链接而不是在另一随机网页上继续点击的概率。
  • A' 是图形的邻接矩阵的转置。
  • d 是包含图形中每个节点的出度的向量。对于没有外向边的节点,d 设置为 1
  • n 是图形中节点的标量数量。
  • s 是无链接的网页的 PageRank 得分的标量总和。

换言之,每个网页的排名很大程度上基于与之链接的网页的排名。项 A'*(r./d) 会挑选出链接到图形中每个节点的源节点的得分,而得分按这些源节点的出站链接总数进行归一化。这确保了 PageRank 得分的总和始终为 1。例如,如果节点 2 链接到节点 1、3 和 4,则它会在算法的每次迭代期间向其中的每一个节点传送 1/3 的 PageRank 得分。

Matlab实现

s = {'A' 'B' 'C' 'C' 'D' 'D' 'E' 'F'};
t = {'B' 'C' 'A' 'D' 'E' 'F' 'F' 'B'};
G = digraph(s,t);
p = plot(G);
pr = centrality(G,'pagerank','FollowProbability',0.85);
G.Nodes.PageRank = pr;
G.Nodes.InDegree = indegree(G);
G.Nodes.OutDegree = outdegree(G);
res=G.Nodes;
res = sortrows(res,'PageRank','descend')

在这里插入图片描述

结果

在这里插入图片描述

Paper排名PageRank入度出度
‘B’10.26220921
‘C’20.24787812
‘F’30.14874921
‘A’40.13036911
‘D’50.13036912
‘E’60.08042711
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值