AI编程方法案例:PageRank算法实现

一、算法简单说明

PageRank算法是一种常见的网络权值迭代算法,主要用于诸如互联网网页的质量测度。基本计算原理是根据网页自身的链出将原始权值进行扩散,并通过多轮迭代获得稳定的收敛值来表征网页自身的最终权值。基本计算公式为:

其中R(u)'和R(u)分别表示网页u的新权值和上次计算的旧权值,Bu表示网页u的链入网页集合,Nv表示网页u的一个链入网页v全部的链出数量。

下面通过一个例子说明基本计算方法。假设有5个网页,链接关系如:


初始设置每个网页的权值都为0.2,即网页总数分之一。
第一轮计算为:

再加上每个网页各自的原始权值,可以得到第一轮计算后每个网页的新权值,即:

利用权值总和(为2)去除每个权值得到规范化后的权值为:

以此类推,再次使用该权值迭代进行相同的计算,反复计算后即可得到最终每个网页的权值。

二、自己实现:

将上述过程反复迭代运行,既可以选择运行100、1000等固定次数,也可以运行到前后两次权值差值小于一定阈值即可结束(本处以第二种为例):

r1, r2, r3, r4, r5 = 0.2, 0.2, 0.2, 0.2, 0.2
_r1 = 0
while abs(_r1 - r1) > 0.000001:_r1, _r2, _r3, _r4, _r5 = r1, r2, r3, r4, r5r1 = _r1 + _r2 / 2 + _r3 / 2 + _r5 / 2r2 = _r2 + _r1 / 1r3 = _r3 + _r2 / 2r4 = _r4 + _r3 / 2 + _r5 / 2r5 = _r5 + _r4 / 1total = r1 + r2 + r3 + r4 + r5r1, r2, r3, r4, r5 = r1 / total, r2 / total, r3 / total, r4 / total, r5 / total
print(r1, r2, r3, r4, r5)

三、AI实现:

有效的提示词:

我是一名计算机学生,正在学习网络计算中的PageRank算法。已知有5个网页,其链接关系如:
网页1有1个链接指向网页2,
网页2有2个链接指向网页1和网页3,
网页3有2个链接指向网页1和网页4,
网页4有1个链接指向网页5,
网页5有2个链接指向网页1和网页4
请根据标准的PageRank算法思路,无需考虑阻尼系数,具体方法是对于每个网页权值初始设为0.2,在第一轮迭代中,如果有其他网页指向,就将其权值累加过来,但是该累加值会被其他链入网页的出度均分,最后每个网页再将自身的权值和其他链入网页传入的权值累加,并最终以全部网页权值总和做分母规范化所有权值,完成第一轮迭代,再进行第二轮迭代,方法同前,反复进行,直到先后两次迭代同一网页的权值差值小于0.00001即可停止迭代,最后输出最终全部网页的权值。请写出Python代码,不要使用自定义函数、列表、字典、任何第三方模块等复杂内容,只需使用简单的逻辑控制语句即可,控制代码在20行以内。

该提示词使用了角色扮演、图例文本描述、算法要求的详细说明、强调不出现的内容(不要使用自定义函数、列表、字典、任何第三方模块)、强调要求出现的内容(只需使用简单的逻辑控制语句、代码行数)

生成的代码为:

# 初始化权值
p1, p2, p3, p4, p5 = 0.2, 0.2, 0.2, 0.2, 0.2# 迭代直到收敛
while True:# 计算新的权值new_p1 = (p2 / 2) + (p3 / 2) + (p5 / 2)new_p2 = p1 / 1new_p3 = p2 / 2new_p4 = (p3 / 2) + (p5 / 2)new_p5 = p4 / 1# 规范化权值total = new_p1 + new_p2 + new_p3 + new_p4 + new_p5new_p1, new_p2, new_p3, new_p4, new_p5 = new_p1/total, new_p2/total, new_p3/total, new_p4/total, new_p5/total# 检查是否收敛if abs(new_p1 - p1) < 0.00001 and abs(new_p2 - p2) < 0.00001 and abs(new_p3 - p3) < 0.00001 and abs(new_p4 - p4) < 0.00001 and abs(new_p5 - p5) < 0.00001:break# 更新权值p1, p2, p3, p4, p5 = new_p1, new_p2, new_p3, new_p4, new_p5# 输出最终权值
print(p1, p2, p3, p4, p5)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于香橙派 KunpengPro学习CANN(3)——pytorch 模型迁移

通用模型迁移适配可以分为四个阶段&#xff1a;迁移分析、迁移适配、精度调试与性能调优。 迁移分析 迁移支持度分析&#xff1a; 准备NPU环境&#xff0c;获取模型的源码、权重和数据集等文件&#xff1b;使用迁移分析工具采集目标网络中的模型/算子清单&#xff0c;识别第三方…

Docker和containerd之概览(Overview of Docker and Containerd)

Docker和containerd之概览 容器本质上就是一个进程。 Namespace是一种逻辑分组机制&#xff0c;允许您将集群资源划分为独立的虚拟环境。每个 Namespace 为资源提供了一个范围&#xff0c;使得不同的团队、应用程序或环境可以在同一集群中共存&#xff0c;而不会相互干扰。 C…

使用OBS进行webRTC推流参考

参考腾讯云官方文档&#xff1a; 云直播 OBS WebRTC 推流_腾讯云 说明非常详细&#xff0c;分为通过WHIP和OBS插件的形式进行推流。 注意&#xff1a;通过OBS插件的形式进行推流需要使用较低的版本&#xff0c;文档里有说明&#xff0c;需要仔细阅读。

荣耀手机卸载应用商店、快应用中心等系统自带的

1.下载abd ADB Download - Get the latest version of ADB and fastboot 2.手机打开开发者选项 3.手机接电脑打开USB调试 4.下载MT管理器查看系统包名 D:\1.LFD\ADB\platform-tools-latest-windows\platform-tools>adb shell adb.exe: no devices/emulators found 这边是…

奇安信全流量(天眼)面试题

一、全流量设备&#xff08;天眼&#xff09;的部署架构 天眼系统采用旁路部署模式&#xff0c;通过流量镜像实现非侵入式监测&#xff0c;核心组件包括流量传感器、分析平台和文件威胁鉴定器&#xff0c;具体部署架构如下&#xff1a; 传感器部署 关键节点覆盖&#xff1a;在…

angular中的路由传参

目录 一、矩阵参数 一、矩阵参数 在angular中传参时可以使用矩阵参数&#xff0c;即直接通过变量值的形式在地址中体现&#xff0c;但需要注意参数的使用范围为当前路径段&#xff0c;而不是全局的查询参数。 const params {name: lhhh,age: 18,list: [{ name: htt }],}; //先…

设计模式(创建型)-抽象工厂模式

摘要 在软件开发的复杂世界中,设计模式作为解决常见问题的最佳实践方案,一直扮演着至关重要的角色。抽象工厂模式,作为一种强大的创建型设计模式,在处理创建一系列或相关依赖对象的场景时,展现出了独特的优势和灵活性。它通过提供一个创建对象的接口,让开发者能够在不指定…

从Excel到搭贝的转变过程

从Excel到搭贝 1. 简介 1.1 Excel简介 Excel 作为元老级的数据管理工具&#xff0c;功能强大且被广泛使用&#xff0c;但在现代工作场景中仍存在一些局限性&#xff0c;例如&#xff1a; 数据量处理有限&#xff1a;处理大规模数据时&#xff0c;Excel可能运行缓慢或崩溃。…

Text-to-SQL将自然语言转换为数据库查询语句

有关Text-To-SQL方法&#xff0c;可以查阅我的另一篇文章&#xff0c;Text-to-SQL方法研究 直接与数据库对话-text2sql Text2sql就是把文本转换为sql语言&#xff0c;这段时间公司有这方面的需求&#xff0c;调研了一下市面上text2sql的方法&#xff0c;比如阿里的Chat2DB,麻…

MFC开发:图形的绘制

文章目录 一、获取指定窗口的设备上下文二、画笔的介绍和使用三、绘制直线四、画刷的介绍和使用五、绘制扇形六、绘制圆形七、绘制文本 一、获取指定窗口的设备上下文 1.GetDC()函数的作用 GetDC() 是 Windows API 中的一个函数&#xff0c;它用于获取指定窗口的设备上下文&am…

SPI 总线协议

1、协议介绍 SPI&#xff0c;是英语 Serial Peripheral interface 的缩写&#xff0c;顾名思义就是串行外围设备接口。是 Motorola 首先在其 MC68HCXX 系列处理器上定义的。 SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线。主节点或子节点的数据在…

Qt msvc程序运行

第一个Qt msvc程序 我们一般用qt msvc来编译程序&#xff0c;就是用webview。 第一个Qt msvc webview程序实现如下&#xff1a; 运行结果&#xff1a; 标注&#xff1a; QT版本大于6.0的时候才能用<Webview>模块。 QT版本在大于5.2版本&#xff0c;引入了Webengine模…

Java设计模式建模语言面向对象设计原则

设计模式 设计模式的概念 设计模式最初用于建筑领域的设计中。 软件的设计模式&#xff0c;又称设计模式&#xff0c;是一套被反复使用&#xff0c;多数人知道的&#xff0c;经过分类编目的&#xff0c;代码设计经验的总结。 它描述了在软件设计过程中的一些不断重复发生的…

搜广推校招面经五十四

美团推荐算法 一、手撕Transformer的位置编码 1.1. 位置编码的作用 Transformer 模型没有显式的序列信息&#xff08;如 RNN 的循环结构&#xff09;&#xff0c;因此需要通过位置编码&#xff08;Positional Encoding&#xff09;为输入序列中的每个位置添加位置信息。位置…

深入解析 SQL 事务:确保数据一致性的关键

SQL 事务 什么是 SQL 事务&#xff1f;事务的 ACID 特性原子性&#xff08;Atomicity&#xff09;:示例&#xff1a; 一致性&#xff08;Consistency&#xff09;:示例&#xff1a; 隔离性&#xff08;Isolation&#xff09;:持久性&#xff08;Durability&#xff09;:示例&am…

【软考-架构】11.3、设计模式-新

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 项目中的应用设计模式创建型设计模式结构型设计模式行为型设计模式 &#x1f4af;考试真题题外话 项目中的应用 在实际项目中&#xff0c;我应用过多种设计模式来解决不同…

观察者模式详解:用 Qt 信号与槽机制深入理解

引言 你是否曾遇到这样的需求&#xff1a;一个对象的状态发生变化后&#xff0c;希望通知其他对象进行相应的更新&#xff1f;比如&#xff1a; 新闻订阅系统&#xff1a;当新闻发布后&#xff0c;所有订阅者都会收到通知。股票行情推送&#xff1a;股价变化时&#xff0c;所…

流量分析实践

下载附件使用wireshark打开&#xff0c;发现数据包非常多&#xff0c;一共有1万多条数据&#xff0c;我们点击分析来看一下协议分级 然后我们再来看一下会话&#xff0c;看有哪些ip地址&#xff0c; 我们通过会话结合大部分的流量发现&#xff0c;172.17.0.1一直在请求172.17.0…

新手村:混淆矩阵

新手村&#xff1a;混淆矩阵 一、前置条件 知识点要求学习资源分类模型基础理解分类任务&#xff08;如二分类、多分类&#xff09;和常见分类算法&#xff08;如逻辑回归、决策树&#xff09;。《Hands-On Machine Learning with Scikit-Learn》Python基础熟悉变量、循环、函…

MYSQL库的操作

目录 一、创建数据库 二、字符集和校验规则 1、查看系统默认字符集以及校验规则 2、查看系统支持的所有字符集以及字符集校验规则 3、指定字符集以及校验规则来创建数据库 4、校验规则对数据库的影响 三、操纵数据库 1、查看数据库 2、修改数据库 3、删除数据库 4、数…