1 随机游走定义

所谓随机游走(random walk),就是在网络上不断重复地随机选择游走路径,最终形成一条贯穿网络的路径。

从一个顶点出发,然后按照一定的概率随机移动到一个邻居节点,并将该节点作为新的当前节点,如此循环执行若干步,得到一条游走路径。

下图所示绿色部分即为一条随机游走。

2 使用随机游走的好处

2.1 并行化

随机游走是局部的,对于一个大的网络来说,可以同时在不同的顶点开始进行一定长度的随机游走,多个随机游走同时进行,可以减少采样的时间。

2.2 局部适应性

可以适应网络局部的变化。网络的演化通常是局部的点和边的变化,这样的变化只会对部分随机游走路径产生影响,因此在网络的演化过程中不需要每一次都重新计算整个网络的随机游走。

3  python 实现随机游走

networkx包的内容可见python库整理:networkx 包_刘文巾的博客-CSDN博客

先看一下我们要用到的图

import networkx as nx
import matplotlib.pyplot as plt
G=nx.barbell_graph(5,4) nx.draw_networkx(G)
plt.show()

然后我们实现随机游走


import random
#导入库def random_walk(G,path_length,alpha,start=None):'''
实现一个截取随机游走
G是我们要研究的图
path_length:随机游走的长度
alpha:每次游走从start点开始的概率
start:随机游走的起始点'''if start==None:path=random.sample(list(G.nodes),1)#如果没有设置起始点,那么我们就在图中随机选择一个else:path=[start]while(len(path)<path_length):
#如果没有到达我们需要的随机游走长度cur_node=path[-1]#下一轮随机游走的起点if(len(list(G.adj[cur_node]))>0):#如果这个“起点”还有相邻点的话:if(random.random()>=alpha):path.extend(random.sample(list(G.adj[cur_node]),1))else:path.append(path[0])
#一定概率是跳转到“起点”的邻居,一定概率是跳到真正的起点else:breakreturn(path)random_walk(G,10,0.1)
#[3, 3, 4, 5, 6, 5, 4, 1, 3, 2]

GNN笔记: random walk相关推荐

  1. Random walk算法及其各种延伸、应用笔记

    文章目录 Random Walk Random walk with start(RWR) RWR的实现 数学表达 classic实现 RWR的快速实现 Off-line流程 On-line查询流程 Λ ...

  2. 自回避随机行走问题 c语言,醉汉随机行走/随机漫步问题(Random Walk Randomized Algorithm Python)...

    世界上有些问题看似是随机的(stochastic),没有规律可循,但很可能是人类还未发现和掌握这类事件的规律,所以说它们是随机发生的. 随机漫步(Random  Walk)是一种解决随机问题的方法,它 ...

  3. 重启随机游走算法(RWR:Random Walk with Restart)

    重启随机游走算法(RWR:Random Walk with Restart) 1 pagerank算法的基本原理 Pagerank算法是Google的网页排名算法,由拉里佩奇发明.其基本思想是民主表决 ...

  4. 2021“MINIEYE杯”中国大学生算法设计超级联赛(5)Random Walk 2(推式子+矩阵逆+矩阵乘)

    Random Walk 2 [2.4]Gauss-Jordan消元法求矩阵的逆 高斯消元求矩阵的逆,伴随单位矩阵一起消元即可. [A,I]→[I,A−1][\text A,\text I]\to [\ ...

  5. 随机游走 Random Walk

    随机游走(英语:Random Walk,缩写为 RW),是一种数学统计模型,它是一连串的轨迹所组成,其中每一次都是随机的.[1][2]它能用来表示不规则的变动形式,如同一个人酒后乱步,所形成的随机过程 ...

  6. HDU 4487 Maximum Random Walk

    Maximum Random Walk Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  7. 随机漫步(random walk)

    1.题目 有一类问题总称为"随机漫步"(Random Walk)问题,这类问题长久以来吸引着数学界的兴趣.所有这些问题即使是最简单的解决起来也是极其困难的.而且它们在很大程度上还远 ...

  8. Machine Learning with Graphs 之 Random Walk with Restarts and Personalized PageRank

    在一个推荐系统中,用一个二分图来代表用户以及商品,它们彼此之间用边连接,构成购买关系. 在图论中,二分图是一类特殊的图,又称为二部图.偶图.双分图.二分图的顶点可以分成两个互斥的独立集 U 和 V 的 ...

  9. 6.2.4 随机游走(Random Walk)

    随机游走这一名称由Karl Pearson在1905年提出[Pearson, K. (1905). The problem of the Random Walk. Nature. 72, 294.], ...

最新文章

  1. LC124 Binary Tree Maximum Path Sum
  2. 访问HTML标签的属性1
  3. 我是如何用机器学习技术帮助 HR 省时间的
  4. Tomat6架构探讨(二续)
  5. javaWeb Note1
  6. 中央音乐学院计算机研究生,2020北京中央音乐学院硕士研究生招生复试电子音乐作曲、电子音乐技术理论等考生须知...
  7. 使用监听器:定时清除map缓存的key value .
  8. @Autowired 作用范围
  9. John the Ripper 著名密码破解工具
  10. android取消自动获取焦点,Android 如何让EditText不自动获取焦点 (转)(示例代码)...
  11. Flash Player的终章——赠予它的挽歌
  12. [数据结构 算法] 2015年蓝桥杯A组C/C++第三题奇妙的数字
  13. win10关闭自动屏保
  14. gets与puts函数
  15. 概率论中的矩母函数(MGF)
  16. CS224n Assignment4解读 · 上
  17. 分析天平计算机分类,分析化学之分析天平的概述和分类
  18. 33、网络地址转换(NAT)
  19. 什么是root?我来告诉你为什么它叫root
  20. 乌班图安装出现无法获取锁解决

热门文章

  1. Java——容器(Comparable)
  2. 802.11 波束成形技术总结
  3. lwip中dns相关函数gethostbyname()的原理
  4. Linux、Windows进程间通信
  5. PAT甲级1084 Broken Keyboard:[C++题解]字符串处理、双指针算法
  6. 中国人民大学_《组织行为学》_11怎样招到最合适的人
  7. ubuntu 安装vsftpd 530 login incorrect
  8. java socket回调_Java ServerSocketChannel SocketChannel(回调)
  9. idea 升级到2020后 无法启动_【维修案例】2020年一汽奥迪Q5L发动机无法启动
  10. php 不刷新提交,提交表单而不刷新页面ajax,php,javascript?