【离散数学】实践三 PageRank体验

news2024/9/21 4:31:21

文章目录

  • PageRank算法工作原理
    • 简化版本
    • 完整版本
  • graphs分析
    • graphs代码 [^4]
  • 结语

PageRank算法工作原理

算法原理1

简化版本

若页面B,C,D…N都有链接到页面A上,则页面A的PageRank值如下:
P R ( A ) = ( P R ( B ) L ( B ) + P R ( C ) L ( C ) + P R ( D ) L ( D ) + . . . + P R ( N ) L ( N ) ) d + 1 − d N PR(A)=(\frac{PR(B)}{L(B)}+\frac{PR(C)}{L(C)}+\frac{PR(D)}{L(D)}+...+\frac{PR(N)}{L(N)})d+\frac{1-d}{N} PR(A)=(L(B)PR(B)+L(C)PR(C)+L(D)PR(D)+...+L(N)PR(N))d+N1d 2

完整版本

区别简化版本完整版本引入了阻尼系数 d d d的概念(任意时刻,用户访问到某页面后继续访问下一个页面的概率,相对应的 1 − d 1-d 1d则是用户停止点击,随机浏览新网页的概率。并且开始声明的 d = 0.85 d=0.85 d=0.85故完整公式如下:
P R ( p i ) = 1 − d N + d ∑ p j ∈ M ( p j ) P R ( p j ) L ( p j ) PR(p_i)=\frac{1-d}{N}+d\sum_{p_j\in M(p_j)}\frac{PR(p_j)}{L(p_j)} PR(pi)=N1d+dpjM(pj)L(pj)PR(pj) 3


graphs分析

结构图
在这里插入图片描述
柱状图
在这里插入图片描述

graphs代码 4

digraph G {
    // 设置图的布局引擎为dot
    layout=dot;

    // 边的样式
    edge [color="#888888", arrowhead="vee"];

    // 节点的样式
    node [shape="ellipse", style="filled", fontname="Arial", color="#DDDDDD", fontcolor="#333333"];

    // 节点之间的连接
    12 -> {04 29 39};
    19 -> {13 40 51 53 59 62};
    20 -> {23 24 40 50 51};
    26 -> {13 27 38 39};
    29 -> {40 44 46};
    57 -> {09 12 40 55};
    45 -> {43 22 28};
    08 -> {59 60 61 62};
    54 -> {40 46};
    09 -> {10 40 57};
    23 -> {16 8 32};
    38 -> {13 27 39 40};
    39 -> {03 04 13};
    41 -> {42 43 44};
    42 -> {27 38 39 40};
    46 -> {12 29 38 40};
    50 -> {4 5 15 46};
    51 -> {12 13};
    52 -> {12 29 40};
    55 -> {13 40 59};
    59 -> {34 40 55};
    61 -> {29 40 46 59};
    48 -> {12 13 17 39 40 46};
    35 -> {12 38 39 40};
    24 -> {27 39 40};
    31 -> {27 38 39 40 50};
    36 -> {34 55 57 59};
    32 -> {13 21 22};
    18 -> {13 40 59};
    07 -> {04 17 27};
    62 -> {13 19 27 59};
    16 -> {13 17 40};
    44 -> {12 13 17 27 29 38 40};
    7 -> {2 4 15};
    53 -> {49 22 48};
    56 -> {4 9 13};
    05 -> {04 08 12 16 20};
    04 -> {05 07 40 46 39};
    27 -> {13 23 38};
    30 -> {13 39 40};
    28 -> {03 07 10 12};
    17 -> {13};
}


结语

如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!


  1. 源于PageRank-wiki ↩︎

  2. L ( x ) L(x) L(x)是每个页面的连出总数, d d d为修正系数,由于“没有向外链接的网页”可能存在,所以赋给每个页面一个最小值 ( 1 − d ) N \frac{(1-d)}{N} N(1d) ↩︎

  3. p 1 , p 2 . . . . p n p_1,p_2....p_n p1,p2....pn是目标页面, M ( p i ) M(p_i) M(pi)是链入𝑝𝑖页面的集合, L ( p j ) L(p_j) L(pj)是页面 p j p_j pj链出页面的数量, N N N是集合中所有页面的数量 ↩︎

  4. Graphviz操作参考文章 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/733480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ES6: 模版字符串

前言: ES5 中我们表示字符串的时候使用 或者 "" 作用: 在 ES6 中,我们还有一个东西可以表示字符串,就是 (反引号) let str hello worldconsole.log(typeof str) // string和单引号还有双引号的区别: 反引号可以换行…

【设计模式】设计模式简介+七大设计原则介绍

设计模式介绍 简介 设计模式是对软件设计中普遍存在(反复出现) 的各种问题,所提出的解决方案。 为什么学习设计模式 软件要做大,要先进行设计,才能保证其有高的稳定性、扩展性(容易按照新的需求添加功能)、复用性&…

MySQL-分库分表详解(五)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

前后端跨域的解决方案

对于使用Spring Boot和Vue的前后端分离项目,下面介绍四种常见的解决跨域问题的方式,并分别从Java后端的两种权限配置方法、前端代理、以及Nginx代理进行说明: 方案提供 使用Spring Boot的权限配置方法: CorsFilter过滤器&#xf…

ChatGPT 最佳实践指南之:提供参考文本

Provide reference text 提供参考文本 GPTs can confidently invent fake answers, especially when asked about esoteric topics or for citations and URLs. In the same way that a sheet of notes can help a student do better on a test, providing reference text to G…

图论之寻找桥边

目录 ①基准法 ②并查集 ③逆向思维之标记环边 ④并查集压缩路径 ①基准法 在图论中,一条边被称为“桥”代表这条边一旦被删除,这张图的连通块数量会增加。等价地说,一条边是一座桥当且仅当这条边不在任何环上。一张图可以有零或多座桥。…

FFmpeg5.0源码阅读—— av_read_frame

摘要:本文主要描述了FFmpeg中用于打开编解码器接口av_read_frame的具体调用流程,详细描述了该接口被调用时所作的具体工作。   关键字:ffmpeg、av_read_frame   读者须知:读者需要了解FFmpeg的基本使用流程,以及一…

JVM理论(二)类加载子系统

类加载流程 类加载流程 类加载器子系统负责从文件系统或者网络中加载class文件,class文件的文件头有特定的文件标识(CAFEBABE是JVM识别class文件是否合法的依据)classLoader只负责文件的加载,而执行引擎决定它是否被执行加载类的信息存放在运行时数据区的方法区中,方法区还包括…

【终端增强工具】这次,我把Terminal(终端)也接入ChatGPT了...

大家好,我是萌新程序员豆小匠。 为terminal(终端)增加自定义命令这个想法从开始学编程的时候就有了,但是一直没有付诸行动。 这次,终于抽时间完成了,且代码开源! 实现的功能 先说下实现的功能…

Idea社区版创建SpringBoot

一 下载Spring Initalizr and Assistant插件 选择左上角的File->Settings->Plugins,在搜索框中输入Spring,出现的第一个Spring Boot Helper插件,点击Installed,下载插件。(这里已经下载) 二 创建Spr…

Python学习笔记【01-基础语法】

文章目录 第一章输入输出print转义字符字符编码标识符和保留字变量数据类型整形浮点型布尔类型字符串类型数据类型转换 注释 第二章input()函数运算符算术运算符赋值运算符比较运算符布尔运算符(逻辑运算符)位运算符运算符的优先级 第三章顺序结构对象的布尔值单分支结构双分支…

dSYM文件是什么 ?

Overview 概述 dSYM的全称是debug symbol, 所以dSYM文件就是debug symbol (dSYM) file, dSYM文件中的每个 debug symbol, 对应了一个关系, 这个关系一端是源代码里真实的符号(类名称、全局变量以及方法和函数名称), 另一端则是其定义的文件号和行号. Apple Documentation 苹果…

word批量替换时使用通配符

替换这个好操作,打开替换功能: 弹出窗口中分别输入要替换的对象和替换的结果: 这里主要介绍特殊的替换: 可以看到点击“更多”之后,会出现下面的选项 像是【区分大小写】、【全字匹配】、【同音】、【查找单词的所有形…

三张表学会MySQL的单表操作!

表单一信息 1、查询表中所有学生的信息 mysql> select * from student; 2、 查询表中所有学生的姓名和英语成绩 mysql> select name,english from student; 3、过滤表中的重复数据 mysql> select DISTINCT * from student; 4、统计每个学生的总分 mysql> sele…

大语言模型高效训练基础知识:优化器AdamW和Adafator

Prerequsite:Adam优化算法 Adam优化算法很长一段时间都是比较主流的参数更新算法,也有很多变种,本文介绍在大模型训练过程中使用的AdamW和Adafator AdamW 原论文:Decoupled Weight Decay Regularization AdamW指的是Adam Weight Decay&#…

Mysql中默认自动事务autocommit关闭和开启方式、rollback回滚恢复数据的使用方法

文章目录 autocommit自动提交事物一、查看autocommit状态二、修改autocommit 状态的方式1、第一种方式2、修改mysql配置文件my.cnf 二、rollback回滚1、autocommit 开启1、autocommit 关闭 autocommit自动提交事物 MySQL 默认开启事务自动提交模式,每条 SOL 语句都…

深度神经网络知识蒸馏算法基础理论

知识蒸馏作为一种压缩方法,与剪枝、量化中直接在原模型上进行参数的剪枝或数据位宽的降低来压缩不同,知识蒸馏方法往往是通过将大模型上的精度转移到一个相对更小的模型上来完成对大模型的压缩。此处所说的大模型即知识蒸馏中的教师模型,而相…

【C语言】深入学习数组

👦个人主页:Weraphael ✍🏻作者简介:目前正在回炉重造C语言(2023暑假) ✈️专栏:【C语言航路】 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你…

进程间通信方法——匿名管道

什么是管道&#xff1f; 管道是Unix中最古老的进程间通信的形式。我们把从一个进程连接到另一个进程的一个数据流称为一个“管道” 什么是匿名管道 就是一个没有名字的管道。 #include <unistd.h> 功能:创建一无名管道 原型 int pipe(int fd[2]); 参数 fd&#xff1a;文…

韩信谋反解密-使用命名空间

开机故事&#xff1a; 另一个韩信 什么是命名空间 c里面也有这种困扰&#xff0c;名字的冲突&#xff0c; 特意使用命名空间&#xff0c;开发的时候都要给函数命名 就会有名字相同的时候。这样就会出现混乱 区分相同名字相同函数的这样一个功能 用法1. #include<string…